326. Power of Three

326. Power of Three

题目:
https://leetcode.com/problems/power-of-three/

难度 : Easy

直接就上的递归

class Solution(object):
    def isPowerOfThree(self,n):
        """
        :type n: int
        :rtype: bool
        """
        if n <= 0:
            return False
        if n == 1:
            return True
        if n%3 == 0:
            return self.isPowerOfThree(n/3)
        else:
            return False
       

有一个follow up,可否不用 loop/recusion

看到了取巧的办法,因为是Given an integer,是有范围的(<2147483648),存在能输入的最大的3的幂次,即 3^19=1162261467。

只用检查是否能被这个数整除

class Solution(object):
    def isPowerOfThree(self, n):
        """
        :type n: int
        :rtype: bool
        """
        return n > 0 and 1162261467 % n == 0

结果跑出来这个running time 更慢|||

你可能感兴趣的:(326. Power of Three)