4 的幂
题目描述(来源于LeetCode)
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x
初期思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Solution: def isPowerOfFour(self, n: int) -> bool: i =31 pid =0 while i: if n ==1: pid =1 break n/=4 i-=1 if pid: return True else: return False
|
复杂度分析
- 时间复杂度:O(log(n))
- 空间复杂度:O(1)
进阶
使用位运算:
1 2 3 4 5 6 7 8 9
| class Solution:
def isPowerOfFour(self, n: int) -> bool: if n ==0 : return False if n&(n-1)==0: return (n&2863311530)==0 else: return False
|
复杂度分析
- 时间复杂度:O(1)
- 空间复杂度:O(1)