【 每天学习一点算法 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)

相关推荐
JieE21217 小时前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2122 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack202 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树2 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2123 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2123 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术3 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦3 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
用户497863050733 天前
(一)小红的数组操作
算法·编程语言