【算法专题突破】二分查找 - 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;
    }
};

写在最后:

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

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

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

相关推荐
8Qi812 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
小宋加油啊16 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
lqqjuly16 小时前
前沿算法深度解析(一)
算法
小欣加油17 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
happymaker062619 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊20 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
八解毒剂21 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
运行时记录1 天前
别再手动写提示词了 — SkillOpt 让技能文档自己进化
算法
啦啦啦啦啦zzzz1 天前
算法总结(二分查找、双指针)
c++·算法