069.x的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
示例 1:
输入:x = 4
输出:2
示例 2:
输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
// 方法1 // 从1开始遍历,若发现i的平方刚好大于等于x,则表示i或i-1 // 刚好是x的平方根 var mySqrt = function (x) { let i = 1; for (; i < x; i++) { if (i * i >= x) { break } } if (i * i === x) { return i } else { return i - 1 } } // 方法2 // 采用二分法 var mySqrt = function (x) { if (x < 2) return x; let left = 1; right = Math.floor(x / 2); while (left <= right) { let mid = Math.floor((left + right) / 2) if (mid * mid == x) { return mid } else if (mid * mid > x) { right = mid - 1 } else { left = mid + 1 } } return right }
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sqrtx
front_end-demos/069.x-的平方根.js at master · fengxianqi/front_end-demos · GitHub

浙公网安备 33010602011771号