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: 4Output: 2
Example 2:
Input: 8Output: 2Explanation: The square root of 8 is 2.82842..., and sincethe decimal part is truncated, 2 is returned.
题意
手动实现 int sqrt(int x)。
思路
二分法。
代码实现
class Solution {public int mySqrt(int x) {if (x == 0 || x == 1) {return x;}// 对于大于等于2的值x,它的平方根小于等于x/2int left = 1, right = x / 2;while (left <= right) {int mid = (left + right) / 2;if (mid < x / mid) {left = mid + 1;} else if (mid > x / mid) {right = mid - 1;} else {return mid;}}return left - 1;}}
