LeetCode150道面试经典题-- 求算数平方根(简单)

1.题目

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

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

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

2.示例

示例 1:

输入:x=4

输出:2

 示例 2:

输入:x = 8

输出:2 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。


 3.思路

二分法:

标准的面试题,考察的是二分法的使用,通过设置上届与下届不断寻找中值以寻找正确值。

4.代码

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

LeetCode150道面试经典题-- 求算数平方根(简单)_第1张图片


你可能感兴趣的:(LeetCode,算法,职场和发展,面试)