leetcode -- 69 -- x的平方根

计算并返回 x 的平方根,其中 x 是非负整数。

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

  1. 袖珍计算器算法
const mySqrt = x => {
	if(x == 0) return 0
	let ans = parseInt(Math.exp(0.5 * Math.log(x)))
	return (ans + 1) * (ans + 1) <= x ? ans + 1 : ans
}
  1. 二分法
const mySqrt = x => {
     if (x < 2) return x
     let left = 1, mid, right = Math.floor(x / 2);
     while (left <= right) {
        mid = Math.floor(left + (right - left) / 2)
        if (mid * mid === x) return mid
        if (mid * mid < x) {
            left = mid + 1
        }else {
            right = mid - 1
        }
     }
     return right
}

你可能感兴趣的:(leetcode,javascript)