sqrt(x)

来源:互联网 发布:amarra 4 for mac 编辑:程序博客网 时间:2024/05/17 05:59

Leetcode 面试题。


简单题。二分搜索。注意r不要开太大,且返回值的平方大于给定值,该返回值减一。


class Solution {public:    int sqrt(int x) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        int l = 1, r = 46341;        int mid = (l + r)>>1;        if(x<=1) return x;        while(l<=r)        {            mid = (l + r) >> 1;            long long tmp = mid*mid;            if(tmp == x) {r = mid;break;}            else if(tmp < x) l = mid + 1;            else r = mid - 1;        }        if((long long)r*r > x) r --;        return r;    }};


原创粉丝点击