【題目描述】
給定一個整數(shù)慷垮,寫一個函數(shù)來判斷它是否是 3 的冪次方钉寝。
【示例1】
輸入: 27
輸出: true
【示例2】
輸入: 0
輸出: false
【示例3】
輸入: 27
輸出: true
【示例4】
輸入: 45
輸出: false
【思路1】
1浊猾、時間復(fù)雜度O(log3^n)
2攻旦、空間復(fù)雜度O(1)
Swift實(shí)現(xiàn):
func isPowerOfThree(_ n: Int) -> Bool {
if n == 1 {
return true
}
var product = 1
while product < n {
product*=3
}
return product == n
}
【思路2】
1租幕、官方思路 整數(shù)限制
2忱叭、時間復(fù)雜度O(1)
3睦霎、空間復(fù)雜度O(1)
4导绷、詳情請異步 整數(shù)限制
代碼實(shí)現(xiàn):
func isPowerOfThree(_ n: Int) -> Bool {
return n > 0 && 1162261467 % n == 0
}