这个题用异或做最简单。
直接疑惑到最后,因为异或结果相同为0,不同为1.
异或两次相同的值结果为0.
异或题解:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int length = nums.size();
int result = 0 ;
for (int i=0; i<length; i++)
{
result ^= nums[i];
}
return result;
}
}; 循环:
class Solution {
public:
int singleNumber(vector<int>& nums) {
sort(nums.begin(),nums.end());
int n=nums.size();
for(int i=1;i<n-1;i++){
if(nums[i]==nums[i-1]||nums[i]==nums[i+1]) continue;
else return nums[i];
}
if(nums[n-1]!=nums[n-2])
return nums[n-1];
return nums[0];
}
};
本文介绍了一种使用异或运算解决数组中单一元素问题的方法。通过异或操作可以高效地找出数组中唯一出现一次的元素。文章提供了两种实现方案,一种是直接利用异或性质,另一种是对数组排序后进行遍历比较。
710

被折叠的 条评论
为什么被折叠?



