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