367 有效的完全平方數

2021-08-28 04:46:10 字數 852 閱讀 5356

給定乙個正整數 num,編寫乙個函式,如果 num 是乙個完全平方數,則返回 true,否則返回 false。

說明:不要使用任何內建的庫函式,如 sqrt。

示例 1:

輸入:16

輸出:true

示例 2:

輸入:14

輸出:false

本題是在解決完我第一次刷題筆記中那道題之後推薦的題目,我看這兩題似乎很有共通之處,一開始想在第一次的基礎上改一改然後提交,後來發覺,有一條捷徑,那就是在實現sqr

t(

)sqrt()

sqrt()

函式之後,在後面加上乙個判斷,如果求出的值hal

fhalf

half

的平方等於輸入的num

numnu

m那不就解決這個問題了麼。。。。

最後提交結果後,由於本題提交的人很少,居然還打敗了100%d的人。

##遇見的問題

沒有,不過,我有考慮過效率上的問題,本題和前一題,都是按照折半的思路來解決的,時間複雜度大概是log

2x

log_2 x

log2​x

,可能會有更有效率的解決方式吧。

##答案

public

boolean

isperfectsquare

(int num)

else}}

if(half * half == num )

return

true

;else

return

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

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