目录
题目:
示例:
分析:
代码:
题目:
示例:
分析:
题目给我们一个数组,让我们返回只出现一次的数字。
那我们直接拿一个map来记录一下就好啦,不过题目要求只使用常量额外空间,那就不能这么做了。
其他还有没有什么方法呢?
这道题只要明白原理,那么其实是很简单的一道题。原理就是相同的数做异或操作的结果是0。
那么我们只需要把数组的所有数都一起做异或操作,因为相同的数被抵消成0了,所以最后的结果就是数组中只出现一次的数了。
代码:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res=nums[0];
for(int i=1;i<nums.size();i++){
res^=nums[i];
}
return res;
}
};