【题目描述】
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
【示例1】
输入: 27
输出: true
【示例2】
输入: 0
输出: false
【示例3】
输入: 27
输出: true
【示例4】
输入: 45
输出: false
【思路1】
1、时间复杂度O(log3^n)
2、空间复杂度O(1)
Swift实现:
func isPowerOfThree(_ n: Int) -> Bool {
if n == 1 {
return true
}
var product = 1
while product < n {
product*=3
}
return product == n
}
【思路2】
1、官方思路 整数限制
2、时间复杂度O(1)
3、空间复杂度O(1)
4、详情请异步 整数限制
代码实现:
func isPowerOfThree(_ n: Int) -> Bool {
return n > 0 && 1162261467 % n == 0
}
网友评论