69. x 的平方根

发布时间 2023-12-19 13:30:36作者: isomer莫柒瑜

69. x 的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

二分思路

数据挺大,用longlong。

class Solution {
public:
    int mySqrt(int x) {
        long long l=1,r=x;
        while(l<r){
            long long mid=(l+r+1)>>1;
            if((long long)mid*mid==x)return mid;
            else if((long long)mid*mid>x)r=mid-1;
            else l=mid;
        }
        return r;
    }
};

使用二分算法的一个特征是有序,但是本质上还是分析问题的划分性质。