題目:原題鏈接(簡單)
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | O(logn) | O(1) | 108ms (38.66%) |
Ans 2 (Python) | – | O(1) | 80ms (93.90%) |
LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。
解法一(暴力解法):
def isPowerOfThree(self, n: int) -> bool:
if n<=0:
return False
while n > 1:
if n % 3 != 0:
return False
else:
n /= 3
else:
return True
解法二(對數運算法):
def isPowerOfThree(self, n: int) -> bool:
if n <= 0:
return False
else:
return (math.log10(n) / math.log10(3)) % 1 == 0