原题链接:Power of Four
分析:这道题和power of two的区别是,这道题不仅要求1的个数只有一个(power of two是这样),而且还要求1后面的0是偶数个。
题解:
class Solution {
public:
bool isPowerOfFour(int num) {
/*
Time Complexity:O(1)
*/
if(num<=0)return false;
if(num&(num-1))return false;
else{
int count=0;
while(num){
if(num&1)return count&1?false:true;
count++;
num=num>>1;
}
}
}
};
本文介绍了一种高效的方法来判断一个整数是否为4的幂次方。该方法不仅检查1的个数是否为1,还确保1之后的0位数为偶数。通过位操作实现,时间复杂度为O(1)。
1331

被折叠的 条评论
为什么被折叠?



