每日LeetCode x的平方根

2021-10-08 12:31:02 字數 624 閱讀 9899

實現 int sqrt(int x) 函式。

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

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

輸入: 8

輸出: 2

說明: 8 的平方根是 2.82842…,

由於返回型別是整數,小數部分將被捨去。

1.明確目標 什麼樣的數字符合要求?

因為是平方根的整數部分,所以這個整數a的平方一定小於給定引數x,並且是符合要求的數字裡面最大的乙個數, 這樣,我們就能定位到每乙個給定引數x,只有乙個正整數a符合要求

a * a <= x

2.如何快速定位 正整數a呢?

這裡使用二分法演算法快速定位到a

時間複雜度: o(logn)

空間複雜度: o(1)

**如下:

class

solution

else

}// 返回最終結果

return a;

}}

這道題目還有另一種解決方案 -》牛頓迭代法

嗯… 這種小肖實在沒看懂,後續補充吧,這是 題解鏈結

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 由於返回型別是整數,小數部分將被捨去。這道題大體有幾類...