採用二分查詢,但要特別注意幾點:
1)mid=a+(b-a)/2防止溢位;
2)判斷是否是平方不能直接判斷mid^2與num,有可能會溢位,因此先求mid_2=num/mid,當能夠整除,且mid_2==mid時,即找到平方根,如果最終都沒有找到,那麼返回false;
class利用數學方法:1+3+5+7+……+(2n-1)=n2,只需要不斷的從num中去掉奇數最後看是否為0就可以了,比二分法更快;solution
return
false
; }
};
classsolution
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...