LeetCode每日一题69. x 的平方根

86 阅读1分钟

地址:leetcode-cn.com/problems/sq…

class Solution {
   public int mySqrt(int x) {
        if (x <= 1) {
            return x;
        }
        int left = 1;
        int right = x;
        //在1-x中寻找最后一个i^2小于等于x的数
        while (left + 1 < right) {
            int mid = left + (right - left) / 2;
            if (mid > x / mid) {
                right = mid;
            } else {
                left = mid;
            }
        }
        if (right <= x / right) {
            return right;
        } else {
            return left;
        }
    }
}