69. x 的平方根


文章目录


1.题目

69. x 的平方根

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

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

**注意:**不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5

示例 1:

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

示例 2:

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

2.思路

  1. 初始化左边界 left 为 0,右边界 rightx,用于定义搜索范围。
  2. 通过二分查找的方式,计算中间值 mid,并求出 mid 的平方 square
  3. 如果 square 等于 x,直接返回 mid,因为它就是 x 的整数平方根。
  4. 如果 square 大于 x,说明当前的 mid 太大,更新右边界 right = mid - 1,继续在较小的范围内搜索。
  5. 如果 square 小于 x,说明当前的 mid 太小,更新左边界 left = mid + 1,继续在较大的范围内搜索。
  6. 当搜索结束时,返回 right,它是平方小于或等于 x 的最大整数,即 x 的整数平方根。

3.代码

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

相关推荐
就改了7 小时前
Java8 日期处理(详细版)
java·python·算法
2601_958352908 小时前
接上USB,焊上麦,通话瞬间安静——WX-0813如何用AI降噪+100dB消回音,把嘈杂通话变成“金子“般清晰
人工智能·算法·语音识别·硬件开发·语音模块·降噪消回音
小蒋学算法9 小时前
算法-M个非重叠子数组最大和II-WQS二分学习
数据结构·学习·算法
我要见SA姐110 小时前
AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
人工智能·算法·游戏
Jerry10 小时前
LeetCode 56. 合并区间
算法
实验如有神祝女士14 小时前
不同参数规模大模型在医学翻译场景的适配差异
论文阅读·人工智能·深度学习·学习·算法·语言模型·论文笔记
windliang15 小时前
Claude Code 源码分析(三):一次模型回答如何流进 Agent
前端·算法·ai编程
Kyrie_kk16 小时前
Java--BigInteger 超大整数计算
java·算法
汽车网络安全爱好者16 小时前
Public Key Infrastructure(二)— 深入理解 X.509 证书:从 RFC 5280 到 OpenSSL 实践
运维·服务器·算法·网络安全·汽车·密码学·可信计算技术
tkevinjd16 小时前
力扣131-分割回文串
算法·leetcode·深度优先