LeetCode 326. 3的幂 Power of Three

作者: 1江春水 | 来源:发表于2019-08-14 16:10 被阅读0次

【题目描述】
给定一个整数,写一个函数来判断它是否是 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
}

相关文章

网友评论

    本文标题:LeetCode 326. 3的幂 Power of Three

    本文链接:https://www.haomeiwen.com/subject/lxtnjctx.html