leetcode 367 有效的完全平方數

2021-10-05 13:59:40 字數 691 閱讀 4625

367. 有效的完全平方數

給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。

說明:不要使用任何內建的庫函式,如sqrt

示例 1:

輸入:16

輸出:true

示例 2:

輸入:14

輸出:false

class solution:

def isperfectsquare(self, num: int) -> bool:

if num<2:

return true

left,right = 2,num//2

while left <= right:

x = left+(right-left)//2

guess_squared = x*x

if guess_squared == num:

return true

if guess_squared >num:

right=x-1

else :

left=x+1

return false

leetcode 367 有效的完全平方數

採用二分查詢,但要特別注意幾點 1 mid a b a 2防止溢位 2 判斷是否是平方不能直接判斷mid 2與num,有可能會溢位,因此先求mid 2 num mid,當能夠整除,且mid 2 mid時,即找到平方根,如果最終都沒有找到,那麼返回false class solution return...

367 有效的完全平方數

給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。說明 不要使用任何內建的庫函式,如 sqrt。示例 1 輸入 16 輸出 true示例 2 輸入 14 輸出 false本題是在解決完我第一次刷題筆記中那道題之後推薦的題目,我看這兩題似乎很...

367 有效的完全平方數

題目 給定乙個正整數num,如果num是乙個完全平方數,返回true,否則返回false 法1 觀察到完全平方數1,4,9,16都是奇數的累加,比如1 1,4 1 3,9 1 3 5,16 1 3 5 7等等 def isperfectsquare self,num type num int rty...