題目:給定乙個正整數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
:rtype: bool
"""tmpsum=0
i=0while tmpsum<=num:
if tmpsum==num:return true
tmpsum+=2*i+1
i+=1
return false
法2:用二分求出num對應的開方數,類似於leetcode69,sqrt(x),最後判斷得到的 開方數**2==num
def isperfectsquare(self, num):
""":type num: int
:rtype: bool
"""if num==0 or num==1:return true
left,right=0,num
while leftmid=left+(right-left)//2
tmp=mid**2
if tmp==num:return true
elif tmpelse:right=mid
return (right-1)**2==num
367 有效的完全平方數
給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。說明 不要使用任何內建的庫函式,如 sqrt。示例 1 輸入 16 輸出 true示例 2 輸入 14 輸出 false本題是在解決完我第一次刷題筆記中那道題之後推薦的題目,我看這兩題似乎很...
367 有效的完全平方數
鏈結 給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。說明 不要使用任何內建的庫函式,如 sqrt。示例 1 輸入 16 輸出 true示例 2 輸入 14 輸出 falsefunc isperfectsquare num int boo...
leetcode 367 有效的完全平方數
367.有效的完全平方數 給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。說明 不要使用任何內建的庫函式,如sqrt。示例 1 輸入 16 輸出 true示例 2 輸入 14 輸出 falseclass solution def ispe...