LeetCode 342. 4的幂
题目描述
✅ 342. 4的幂
思路分析
解法一:位运算判定(推荐)
核心思路:
- 4 的幂必须是正数,且二进制中只有一位为 1。
- 这一位必须落在奇数位(1、3、5…),可用掩码
0x55555555判定。
复杂度分析:
- 时间复杂度:O(1)。
- 空间复杂度:O(1)。
class Solution {
public boolean isPowerOfFour(int n) {
if (n <= 0) {
return false;
}
// 只有一位为 1
if ((n & (n - 1)) != 0) {
return false;
}
// 1 必须出现在奇数位
return (n & 0x55555555) != 0;
}
}
func isPowerOfFour(n int) bool {
if n <= 0 {
return false
}
// 只有一位为 1
if n&(n-1) != 0 {
return false
}
// 1 必须出现在奇数位
return n&0x55555555 != 0
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 231. 2 的幂 | 简单 | 位运算 |
| 326. 3 的幂 | 简单 | 数学 |
| 191. 位1的个数 | 简单 | 位运算 |
| 201. 数字范围按位与 | 中等 | 位运算 |
| 461. 汉明距离 | 简单 | 位运算 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!