通过
用 O(1) 时间检测整数 n 是否是 2 的幂次。
您在真实的面试中是否遇到过这个题?
Yes
样例
n=4
,返回 true
;
n=5
,返回 false
.
注意
标签
Expand
O(1) 时间复杂度
相关题目 Expand
O(logN)时间复杂度
class Solution {
/*
* @param n: An integer
* @return: True or false
*/
public boolean checkPowerOf2(int n) {
// write your code here
boolean flag = true;
if(n<1) flag = false;
while(n>=2){
if((n&1)==1){
flag = false;
break;
}
n = n>>1;
}
return flag;
}
};
O(1)时间复杂度
/*
* @param n: An integer
* @return: True or false
*/
public boolean checkPowerOf2(int n) {
if(n<=0) return false;
return (n & (n-1)) == 0 ? true : false;
}