367 有效的完全平方數

2021-09-14 01:50:08 字數 748 閱讀 4895

題目:給定乙個正整數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...