思路:2的幂的特征是>0,且只存在一个1的二进制数,所以通过汉明重量的解法,如果多于1个1了,就不是2的幂
// @Title: 2 的幂 (Power of Two)
// @Author: qisiii
// @Date: 2022-03-10 21:20:22
// @Runtime: 0 ms
// @Memory: 38.4 MB
// @comment: 2的幂的特征是>0,且只存在一个1的二进制数,所以通过汉明重量的解法,如果多于1个1了,就不是2的幂
// @flag: RED
class Solution {
public boolean isPowerOfTwo(int n) {
if(n<=0){
return false;
}
int count=0;
while(n!=0){
if((n&1)==1){
count++;
if(count>1){
return false;
}
}
n=n>>>1;
}
return true;
}
}
+++ title = “2 的幂 (Power of Two)” draft = false +++
思路:官方取反互与的解法
// @Title: 2 的幂 (Power of Two)
// @Author: qisiii
// @Date: 2022-03-10 21:24:09
// @Runtime: 0 ms
// @Memory: 38.7 MB
// @comment: 官方取反互与的解法
// @flag: ORANGE
class Solution {
public boolean isPowerOfTwo(int n) {
return n>0&&(n&(n-1))==0;
}
}