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