力扣69. x 的平方根

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

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意: 不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5


示例 1:

复制代码
输入:x = 4
输出:2

示例 2:

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

提示:

  • 0 <= x <= 231 - 1

代码:

cpp 复制代码
class Solution {
public:
    int mySqrt(int x) {
        int left = 0, right = x, res = -1;
        
        while(left <= right){
            long long mid = (left + right) / 2;

            if(mid * mid <= x){
                res = mid;
                left = mid + 1;
            }
            else{
                right = mid - 1;
            }
        }

        return res;
    }
};

解题思路:

(1)使用二分查找的思路。

(2)若 mid * mid 小于 x,则赋值给 res。

(3)循环结束后,res 即为最终结果。

相关推荐
RTC老炮5 分钟前
webrtc降噪-WienerFilter源码分析与算法原理
算法·webrtc
hweiyu0035 分钟前
数据结构:数组
数据结构·算法
无限进步_1 小时前
C语言单向链表实现详解:从基础操作到完整测试
c语言·开发语言·数据结构·c++·算法·链表·visual studio
初夏睡觉1 小时前
循环比赛日程表 题解
数据结构·c++·算法
派大星爱吃鱼1 小时前
素数检验方法
算法
Greedy Alg2 小时前
LeetCode 72. 编辑距离(中等)
算法
xinxingrs2 小时前
贪心算法、动态规划以及相关应用(python)
笔记·python·学习·算法·贪心算法·动态规划
秋邱2 小时前
驾驭数据洪流:Python如何赋能您的数据思维与决策飞跃
jvm·算法·云原生·oracle·eureka·数据分析·推荐算法
侯小啾2 小时前
【23】C语言 左移(<<) 与 右移(>>) 位运算符在处理像素中的应用
c语言·算法·位运算·右移·左移
搂鱼1145143 小时前
(dp 优化)洛谷 P14460 寻雾启示 题解
算法·图论