sqrtx

来源:互联网 发布:哪个清理软件最好 编辑:程序博客网 时间:2024/06/06 23:45

题目:

Implementint sqrt(int x).
Compute and return the square root of x.

程序:

class Solution {public:    int sqrt(int x) {//思路用二分法        if (x < 2)            return x;        int left = 1, right = x / 2;    //右端从x/2开始        int mid, last_mid;        while (left <= right) {            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;    }};

点评:

采用二分法,两端逼近,在做连续序列或者数组类题目时,可用二分法减少时间复杂度