这几天都比较忙,那就刷简单题来保持习惯吧,今天的也是二分查找的题目。
当然完全没有想到用二分法的方法不断地逼近答案,感觉大学的数值计算方法这门课白学了,代码如下:
/** * @param {number} x * @return {number} */ var mySqrt = function(x) { let lp = 1 , rp = x; let mid = (lp + rp)/2; let loop = 0; while( loop < 128 && mid*mid != x){ loop += 1; if(mid*mid < x){ lp = mid + 0.1; }else{ rp = mid - 0.1; } mid = ( rp + lp )/2; } return parseInt(mid); };