Implement
int sqrt(int x)
.Compute and return the square root of x, where x is guaranteed to be a non-negative integer.
Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.
Example 1:
Input: 4 Output: 2
Example 2:
Input: 8 Output: 2 Explanation: The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned.
1 class Solution { 2 public int mySqrt(int x) { 3 long lo = 0; 4 long hi = x/2+1; 5 6 while(lo<=hi){ 7 long mid = (hi-lo)/2+lo; 8 if(mid*mid==x) 9 return (int)mid; 10 else if(mid*mid>x) 11 hi = mid-1; 12 else 13 lo = mid+1; 14 15 } 16 return (int)lo-1; 17 } 18 }