leetcode 69 x的平方根
阿新 • • 發佈:2018-11-30
實現 int sqrt(int x)
函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1: 輸入: 4 輸出: 2
示例 2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842..., 由於返回型別是整數,小數部分將被捨去。
思路:採用二分法
這道題要求我們求平方根,我們能想到的方法就是算一個候選值的平方,然後和x比較大小,為了縮短查詢時間,我們採用二分搜尋法來找平方根。
public int mySqrt(int x) {
if(x <= 1) return x;
int left = 0;
int right = n;
while(left <= right){
if(x / mid >= x){
left = mid + 1;
}else{
right = mid - 1;
}
}
return right;
}
牛頓迭代法
public int mySqrt(int x) { long res = x; while(res * res > x){ res = (res + x / res) / 2; } return (int)res; }