js实现
var mySqrt = function (x) {
if (x === 0 || x === 1) return x
let left = 1
let right = x - 1
let m
let target
let res
while (left <= right) {
m = Math.floor((left + right) / 2)
target = Math.floor(x / m)
if (target === m) {
return m
}
if (target < m) {
right = m - 1
}
if (target > m) {
left = m + 1
res = m
}
}
return Math.floor(res)
}
展开