1.落单的数
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
Example 1:
Input:[1,1,2,2,3,4,4]
Output:3
解释:
仅3出现一次
Example 2:
Input:[0,0,1]
Output:1
解释:
仅1出现一次
挑战
一次遍历,常数级的额外空间复杂度
注意事项
n≤100
利用两个数之间的异或运算
class Solution {
public:
/**
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> &A) {
int flag = 0;
for(auto it = A.begin(); it != A.end(); it++){
flag ^= *it;
}
return flag;
}
};
计算10以内的数字出现多少次
void singleNumber(vector<int> &A) {
int b[10]={0};
for(auto it = A.begin(); it != A.end(); it++){
b[*it]++;
}
}