Leetcode 每日一题69.x的平方根

🌈🌈🌈今天给大家分享的是:leetcode简单题{x的平方根}

目录

问题描述

输入输出格式

示例

算法分析

算法步骤

过题图片

代码实现

注意事项

题目链接

结论


问题描述

给定一个非负整数 x,我们需要计算并返回 x 的算术平方根,并且只保留整数部分,小数部分将被舍去。不允许使用任何内置指数函数和算符,如 pow(x, 0.5)x ** 0.5

输入输出格式

  • 输入 :一个非负整数 x
  • 输出x 的算术平方根的整数部分。

示例

  1. 输入:x = 4,输出:2
  2. 输入:x = 8,输出:2(因为 8 的算术平方根是 2.82842...,我们只取整数部分)。

算法分析

这个问题可以通过二分查找算法来解决。二分查找是一种在有序数组中查找特定元素的算法,其时间复杂度为 O(log n)。在这个问题中,我们可以将二分查找应用于寻找整数平方根。

算法步骤

  1. 初始化两个指针 lr,分别指向搜索范围的左边界(1)和右边界(x)。
  2. l 小于等于 r 的条件下循环:
    • 计算中间值 mid,为 lr 的平均值,即 mid = l + (r - l) / 2
    • 计算 mid 的平方与 x 的关系:
      • 如果 x / mid >= mid,则说明 mid 可能是平方根,或者平方根在 mid 的右边,因此将 l 设置为 mid + 1
      • 否则,平方根在 mid 的左边,将 r 设置为 mid - 1
  3. 循环结束后,ans 将保存 x 的算术平方根的整数部分。

过题图片

代码实现

复制代码
class Solution {
    public int mySqrt(int x) {
        int l = 1;
        int r = x;
        int ans = 0;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            long square = (long) mid * mid; // 用 long 防止溢出
            if (square <= x) {
                l = mid + 1;
                ans = mid;
            } else {
                r = mid - 1;
            }
        }
        return ans;
    }
}

注意事项

  • 在计算 mid 的平方时,我们将其转换为 long 类型以防止整数溢出。
  • 由于题目要求返回整数部分,我们不需要考虑小数点后的值。

题目链接

69. x 的平方根 - 力扣(LeetCode)

结论

通过二分查找算法,我们可以高效地计算出一个非负整数的算术平方根的整数部分。

🌈🌈🌈好啦,今天的分享就到这里!

🛩️🛩️🛩️希望各位看官读完文章后,能够有所提升。

🎉🎉🎉创作不易,还希望各位大佬支持一下!

✈️✈️✈️点赞,你的认可是我创作的动力!

⭐⭐⭐收藏,你的青睐是我努力的方向!

✏️✏️✏️评论:你的意见是我进步的财富!

相关推荐
XWalnut14 分钟前
LeetCode刷题 day4
算法·leetcode·职场和发展
蒸汽求职27 分钟前
机器人软件工程(Robotics SDE):特斯拉Optimus落地引发的嵌入式C++与感知算法人才抢夺战
大数据·c++·算法·职场和发展·机器人·求职招聘·ai-native
AI成长日志1 小时前
【笔面试算法学习专栏】双指针专题·简单难度两题精讲:167.两数之和II、283.移动零
学习·算法·面试
旖-旎1 小时前
分治(库存管理|||)(4)
c++·算法·leetcode·排序算法·快速选择算法
青稞社区.1 小时前
ICLR‘26 Oral | 当 LLM Agent 在多轮推理中迷失时:T3 如何让强化学习重新学会主动推理
人工智能·算法·agi
春花秋月夏海冬雪1 小时前
代码随想录刷题 - 贪心Part1
java·算法·贪心·代码随想录
环黄金线HHJX.1 小时前
Tuan符号系统重塑智能开发
开发语言·人工智能·算法·编辑器
汀、人工智能2 小时前
[特殊字符] 第2课:字母异位词分组
数据结构·算法·链表·数据库架构··字母异位词分组
小O的算法实验室3 小时前
2026年SEVC,面向主动成像卫星任务规划问题的群体智能与动态规划混合框架,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
网安INF3 小时前
数据结构第一章复习:基本概念与算法复杂度分析
数据结构·算法