问题描述:
用 O(1) 时间检测整数 n 是否是 2 的幂次。
样例:n=4
,返回 true
;n=5
,返回 false
.
注意:O(
1) 时间复杂度
算法思想:最关键的判断是否2的幂次的只有一句:(n&(n-1))==0是否成立;
public static boolean checkPowerOf2(int n){
boolean flag=false;
if(n>0&&(n&(n-1))==0){
flag=true;
}
return flag;
}