LeetCode LCR 072. x 的平方根

LeetCode LCR 072. x 的平方根

描述

给定一个非负整数 x ,计算并返回 x 的平方根,即实现 int sqrt(int x) 函数。

正数的平方根有两个,只输出其中的正数平方根。

如果平方根不是整数,输出只保留整数的部分,小数部分将被舍去。

示例 1:

输入: x = 4
输出: 2

示例 2:

输入: x = 8
输出: 2

解释: 8 的平方根是 2.82842…,由于小数部分将被舍去,所以返回 2

提示:

0 <= x <= 2^31 - 1

题解

class Solution {
    public int mySqrt(int x) {
        if(x==1){return 1;}
        if(x==0){return 0;}
        int left = 0;
        int right = x;
        while(left<=right){
            int mid = (right-left)/2+left;
            if((long)mid*mid == x){
                return mid;
            }else if((long)mid*mid<x){
                left = mid+1;
            }else{
                right  = mid-1;
            }
        }
        return right;
    }
}

你可能感兴趣的:(leetcode,算法,java,数据结构,二分)