题目:
实现 int sqrt(int x) 函数,计算并返回 x 的平方根。
样例:
样例
$sqrt(3) = 1$$sqrt(4) = 2$$sqrt(5) = 2$$sqrt(10) = 3$思路:
用二分搜索法来找平方根
时间复杂度变为$O(logn)$$
参考答案:
class Solution {public: /* * @param x: An integer * @return: The sqrt of x */ int sqrt(int x) { // write your code here if(x < 1) return 0; if(x == 1) return 1; int start = 0; int end = x/2 + 1; while(start+1 < end){ long mid = start + (end-start)/2;//注意,long if(mid*mid <= x){ start = mid; } else{ end = mid; } } return start; }};