【 每天学习一点算法 2026/04/12】x 的平方根

每天学习一点算法 2026/04/12

题目:x 的平方根

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

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

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

作者:LeetCode

链接:https://leetcode.cn/leetbook/read/top-interview-questions-medium/xwrzwc/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本来是没思路的,看到了官方题解的二分查找的题解,就瞬间知道了该怎么做了,就是在 1 ~ x 的范围内找平方等于x的数嘛,要注意的是小数只保留整数部分,所以我们需要找到平方等于 x 或者 平方小于 x 最靠后的数。

typescript 复制代码
function mySqrt(x: number): number {
  if (x <= 1) return x
  let left = 1, right = x / 2 // 目标值肯定是小于等于 2 / x 
  let res = 1
  while (left <= right) {
    const mid = Math.floor((left + right) / 2) // 取偏左的值
    if (mid * mid === x) {
      return mid // 找到平方根直接返回
    } else if (mid * mid > x) {
      right = mid - 1 // 目标值在左侧
    } else {
      left = mid + 1 // mid小于目标值
      res = mid // 记录当前的值,可能是最靠后的
    }
  }
  return res
};

题目来源:力扣(LeetCode)

相关推荐
随意起个昵称2 小时前
区间dp-基础题目1(石子合并)
算法·动态规划
吞下星星的少年·-·3 小时前
线段树模板
算法
段一凡-华北理工大学3 小时前
2026 高炉炼铁智能化技术全景与演进路径~系列文章11:演进路径与行业未来
大数据·网络·人工智能·算法·工业智能体·高炉炼铁智能化
喜欢踢足球的老罗3 小时前
从移动开发转型 AI Agent 工程师:我做了一个开源学习系统
人工智能·学习
叶小鸡3 小时前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
星马梦缘4 小时前
aaaaa
数据结构·c++·算法
wuxinyan1234 小时前
工业级大模型学习之路030:Streamlit 企业级智能体前端工作台
前端·学习·streamlit·智能体
菜菜的顾清寒4 小时前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
lqqjuly4 小时前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
逻辑君5 小时前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵