LeetCode:231. 2 的幂/136. 只出现一次的数字
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n<=0)return false;
return (n&(n-1))==0;
}
};
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res=0;
for(int n:nums){
res^=n;
}
return res;
}
};
解释:以nums = [4, 1, 2, 1, 2]为例进行计算:
res = 0 ^ 4 = 4
二进制:0000 ^ 0100 = 0100
res = 4 ^ 1 = 5
二进制:0100 ^ 0001 = 0101
res = 5 ^ 2 = 7
二进制:0101 ^ 0010 = 0111
res = 7 ^ 1 = 6
二进制:0111 ^ 0001 = 0110
res = 6 ^ 2 = 4
二进制:0110 ^ 0010 = 0100
