69. Sqrt(x)¶
- Time: $O(\log x)$
- Space: $O(1)$
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 | |
var mySqrt = function(x) {
if (x < 2) return x;
let l = 1, r = Math.floor(x / 2);
while (l <= r) {
const m = Math.floor((l + r) / 2), sq = m * m;
if (sq === x) return m;
if (sq < x) l = m + 1;
else r = m - 1;
}
return r;
};