114:Sqrt(x)

来源:互联网 发布:java怎么制作游戏 编辑:程序博客网 时间:2024/05/16 04:26

题目:Implement int sqrt(int x). Compute and return the square root of x.

该题目比较简单,可以使用二分法,代码如下:

// 二分查找// 时间复杂度 O(logn),空间复杂度 O(1)class Solution {public:        int mySqrt(int x) {                int left = 1, right = x / 2;                int last_mid;  // 记录最近一次 mid                if (x < 2) return x;                while (left <= right) {                        int mid = left + (right - left) / 2;                        if (x / mid > mid) { // 不要用 x > mid * mid,会溢出                                left = mid + 1;                                last_mid = mid;                        }                        else if (x / mid < mid)                                right = mid - 1;                        else                                return mid;                }                return last_mid;        }};
0 0
原创粉丝点击