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.代码

java 复制代码
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;
    }
}

相关推荐
哭泣的眼泪4081 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
Microsoft Word2 小时前
c++基础语法
开发语言·c++·算法
天才在此2 小时前
汽车加油行驶问题-动态规划算法(已在洛谷AC)
算法·动态规划
莫叫石榴姐3 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
茶猫_4 小时前
力扣面试题 - 25 二进制数转字符串
c语言·算法·leetcode·职场和发展
uzong4 小时前
7 年 Java 后端,面试过程踩过的坑,我就不藏着了
java·后端·面试
肥猪猪爸6 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
readmancynn6 小时前
二分基本实现
数据结构·算法
萝卜兽编程6 小时前
优先级队列
c++·算法
盼海6 小时前
排序算法(四)--快速排序
数据结构·算法·排序算法