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

写在最后:

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

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

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

相关推荐
y = xⁿ2 分钟前
【LeetCodehot100】 T543:二叉树的直径 T102:二叉树的层序遍历
算法
敲上瘾4 分钟前
位图与布隆过滤器:原理、实现与海量数据处理方案
大数据·数据结构·算法·位图·布隆过滤器
宵时待雨10 分钟前
C++笔记归纳13:map & set
开发语言·数据结构·c++·笔记·算法
1104.北光c°1 小时前
滑动窗口HotKey探测机制:让你的缓存TTL更智能
java·开发语言·笔记·程序人生·算法·滑动窗口·hotkey
仰泳的熊猫5 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
无极低码8 小时前
ecGlypher新手安装分步指南(标准化流程)
人工智能·算法·自然语言处理·大模型·rag
软件算法开发9 小时前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
superior tigre9 小时前
22 括号生成
算法·深度优先
努力也学不会java11 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试