leetcode 367 有效的完全平方數

2022-04-03 15:55:41 字數 481 閱讀 9971

採用二分查詢,但要特別注意幾點:

1)mid=a+(b-a)/2防止溢位;

2)判斷是否是平方不能直接判斷mid^2與num,有可能會溢位,因此先求mid_2=num/mid,當能夠整除,且mid_2==mid時,即找到平方根,如果最終都沒有找到,那麼返回false;

class

solution

return

false

; }

};

利用數學方法:1+3+5+7+……+(2n-1)=n2,只需要不斷的從num中去掉奇數最後看是否為0就可以了,比二分法更快;

class

solution

return (num==0)? true:false

; }

};

leetcode 367 有效的完全平方數

367.有效的完全平方數 給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。說明 不要使用任何內建的庫函式,如sqrt。示例 1 輸入 16 輸出 true示例 2 輸入 14 輸出 falseclass solution def ispe...

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...