https://leetcode.com/problems/sqrtx/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* @param {number} x
* @return {number}
*/
var mySqrt = function(x) {
let left = 0
let right = Number.MAX_SAFE_INTEGER
let mid
while(true) {
mid = Math.floor(left + (right - left) / 2)
if (mid > x / mid) {
right = mid - 1
} else {
if ((mid + 1) > x / (mid + 1)) {
return mid
}
left = mid + 1
}
}
};