leetcode.69 x的平方根
阿新 • • 發佈:2018-12-10
實現 int sqrt(int x)
函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842...,
由於返回型別是整數,小數部分將被捨去。
本題的最佳解答為使用二分法(parseInt也可解析一個字串,返回一個整數)
/** * @param {number} x * @return {number} */ var mySqrt = function (x) { var l = 0, r = x; while (true) { var mid = parseInt(l + (r - l) / 2);//用parseInt來返回整數 if (mid * mid > x) { r = mid - 1; } else if (mid * mid < x) { if ((mid + 1) * (mid + 1) > x) { return mid; } l = mid + 1; } else { return mid; } } };
JavaScript中也給了一個方法,用時超過二分法,但比較簡單
/**
* @param {number} x
* @return {number}
*/
var mySqrt = function(x) {
return Math.floor(Math.sqrt(x));
};