x&(x-1) ,作用是将x二进制表示下最右边的1改为0
eg:
class Solution {
public int[] countBits(int num) {
int []countOneRes=new int[num+1];
for(int i=0;i<=num;++i){
countOneRes[i]=countOnes(i);
}
return countOneRes;
}
public int countOnes(int x){
int count=0;
while(x>0){
x&=x-1;
count++;
}
return count;
}
}