leetcode x的平方根(二分查詢,牛頓)

2021-10-05 22:35:22 字數 635 閱讀 5358

題目:

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

一刷:這類問題從計算機的角度來看,就是猜答案。

二分查詢:

class solution:

def mysqrt(self, x: int) -> int:

l, r = 0, x

while l <= r:

mid = (l + r) // 2

if mid * mid <= x:

l = mid + 1

ans = mid

else:

r = mid - 1

return ans

牛頓法:

class solution:

def mysqrt(self, x: int) -> int:

cur = x

while(true):

if abs(cur * cur - x) <= 1e-6:

return int(cur)

cur = (cur + x/cur)/2

LeetCode x的平方根

在網上學習了其他人的方法以後,寫了出來,學到了新的方法,在此記錄一下 1,返回整型的時候,可以使用二分法 2 返回double時,可以使用牛頓迭代法,a 求取乙個整數的平方根時,其平方根一定是不大於 n 2 1 所以在 0,n 2 1 這個範圍內求取,如下 int mysqrt int x if m...

LeetCode x的平方根

實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4輸出 2示例 2 輸入 8輸出 2說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去。解題方法 明白開平方根基...

leetcode x 的平方根

實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。這道題大體有幾類...