力扣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 即为最终结果。

相关推荐
Yfhonier1 小时前
岛屿数量(DFS)
算法·深度优先
橘子汽水1681 小时前
Leetcode15:三数之和
java·数据结构·算法
黄金龙PLUS1 小时前
ASCON置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
邪修king1 小时前
Re:Linux 系统篇(十六):进程篇(五):O (1) 调度算法深度解析 —— 优先级数组、位图优化与活跃 / 过期双队列
linux·运维·算法
Yfhonier1 小时前
6440. 极大连通图个数(DFS)
数据结构·算法·深度优先
测试19981 小时前
软件测试面试八股文【2026最新版】
自动化测试·软件测试·功能测试·测试工具·面试·职场和发展·测试用例
玖玥拾1 小时前
LeetCode 1 两数之和
算法·leetcode·职场和发展
Cccp.1231 小时前
【leetcode】(一)认识复杂度和简单排序算法
算法·排序算法
boheweidexiatian2 小时前
如何系统性地准备面试,把通过率提到最高?
面试·职场和发展·求职招聘