【算法专题突破】二分查找 - x 的平方根(18)

目录

[1. 题目解析](#1. 题目解析)

[2. 算法原理](#2. 算法原理)

[3. 代码编写](#3. 代码编写)

写在最后:


1. 题目解析

题目链接:69. x 的平方根 - 力扣(LeetCode)

这道题就是求算数平方根,

要注意的点是他只需要保留整数部分,小数部分会舍去

2. 算法原理

我们确定好一个区间 1 ~ x,数字 x 的算数平方根一定在这里面,

最简单的思路就是用暴力解法每个都遍历一遍找出来,

实际上,在这样一个有序的数组里面,我们可以使用二分查找来优化代码:

我们每次取中点 mid

当 mid * mid <= x,让 left = mid

当 mid * mid > x,让 right = mid - 1

3. 代码编写

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

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

相关推荐
海石21 分钟前
【JS击败90%】前缀和+定长滑动窗口
算法·leetcode
Tisfy35 分钟前
LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数
算法·leetcode·深度优先··题解·连通图·全连通分量
海石1 小时前
1次遍历,空间复杂度击败100%,时间复杂度击败85%
算法·leetcode
L歪歪君1 小时前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
m0_466525292 小时前
从“算法内卷”到“可信易用” 东软多模态医学人工智能平台开启无代码科研新时代
人工智能·算法
码少女2 小时前
数据结构——冒泡排序及优化
数据结构·算法·排序算法
梦回江东2 小时前
ansible中的主机清单
算法
青梅橘子皮2 小时前
string---入门OJ题(1)
数据结构·算法
qq_454245032 小时前
BasicMethod.Map 设计框架:8 个并行基础模块的数学根基与实现
数据结构·算法·c#
青山木3 小时前
Hot 100 --- 二叉树与递归
java·数据结构·算法·leetcode·深度优先