實現int sqrt(int x)
函式。計算並返回
x
的平方根,其中x
是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:正常就是設乙個變數輸入:
4
輸出:
2
示例 2:
輸入:
8
輸出:
2
說明:
8
的平方根是2.82842
…,由於返回型別是整數,小數部分將被捨去。
i
從0
開始遍歷,判斷i * i
與x
的大小關係,一直到i * i
大於x
,就返回i-1
。
但是這樣明顯太慢了。
我們簡單分析一下這個尋找答案的過程,不難發現其思路就是取i
從0
遍歷到x
,找出乙個滿足條件i * i < x
的最大的i
,這恰恰符合二分答案
的基本套路啊。
class
solution
int left =
1, right = x;
int mid;
while
(right > left +1)
else
if(temp < mid)
else
}return left;
}}
x的平方根
題目三十九 實現int sqrt int x 函式,計算並返回 x 的平方根。您在真實的面試中是否遇到過這個題?yes 樣例sqrt 3 1 sqrt 4 2 sqrt 5 2 sqrt 10 3 挑戰 o log x class solution if i ix return i if i i x...
x的平方根
實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。看到這個題,當時想到了利用二分法,查詢x的平方根。寫出了如下 public int mysqrt int x else if m m x m m 0 else return l 但是這個方法並不適用大數,因為m...
x的平方根
實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。袖珍計算器演算...