Problem Statement:
Given a non-negative integer x
, return the square root of x
 rounded down to the nearest integer. The returned integer should be non-negative as well.
You must not use any built-in exponent function or operator.
- For example, do not useÂ
pow(x, 0.5)
 in c++ orÂx ** 0.5
 in python.
Example 1:
Input: x = 4 Output: 2 Explanation: The square root of 4 is 2, so we return 2.
Example 2:
Input: x = 8 Output: 2 Explanation: The square root of 8 is 2.82842…, and since we round it down to the nearest integer, 2 is returned.
Constraints: 🌟🌟
- 0 x 2^3$$^1 -
Solution:
Easy one. First we need to search for minimal k satisfying condition k^2 > x
, then k - 1
 is the answer to the question. We can easily come up with the solution. Notice that I set right = x + 1
 instead of right = x
 to deal with special input cases like x = 0
 and x = 1
.