title: 数学&位运算
1、只出现一次的数字
知识点:
1)任何数字和它本身异或,结果是0
2)任何数字和0异或,结果是它自己
3)异或满足交换律和结合律
int singleNumber(int* nums, int numsSize){
int i, result=0;
for(i=0; i<numsSize; ++i)
{
result ^= nums[i];
}
return result;
}
6、位1的个数
int hammingWeight(uint32_t n) {
int count_1 = 0;
for(; n!= 0; n>>=1)
{
if((n&1) != 0){
++count_1;
}
}
return count_1;
}