/*** @param {number} x
* @return{number}*/
var mySqrt = function(x){
let l =0, r = x;while(l<=r){
let m = l + Math.floor((r-l)/2);
let temp = m*m;if(temp === x){return m;}elseif(temp > x){// target在m左边
r = m -1;}else{// target 在m右边
l = m +1;}}return r;};
2.2 方法二
左右指针初始值:0,x+1;
while循环条件:left<right;
折半查找区间:左闭右开;
/*** @param {number} x
* @return{number}*/
var mySqrt = function(x){
let l =0, r = x+1;while(l<r){
let m = l + Math.floor((r-l)/2);
let temp = m*m;if(temp === x){return m;}elseif(temp > x){// target在m左边
r = m;}else{// target 在m右边
l = m +1;}}return l-1;};