🥃

求平方根

题源:求平方根

题解

class Solution {
public:
    int mySqrt(int x) {
		    // 注意边界条件, 0 <= x <= 231 - 1
        if (x == 0) return 0;

        // 暴力方法:搜索 [1, x/2 + 1]
        // x==1时,边界为 [1,1], 目标值是1
        // x==2时,边界为 [1,2]
        // x==3时,边界为 [1,2]
        // x==4时,边界为 [1,3], 目标值是2
        int l = 1, r = x/2 + 1, ans = 1;
        while(l < r) {
            int mid = l + (r-l)/2;
            if ((long long)mid*mid <= x) {
                ans = mid;
                l = mid + 1;
            } else {
                r = mid;
            }
        }
        return ans;
    }
};
你觉得这篇文章怎么样?
YYDS
比心
加油
菜狗
views

Loading Comments...