Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example 1:
Input: [2,2,1] Output: 1
Example 2:
Input: [4,1,2,1,2] Output: 4
class Solution {
public:
int singleNumber(vector<int>& nums) {
int num = 0;
for(int i=0; i<nums.size(); i++)
{
num ^= nums[i];
}
return num;
}
};
本文介绍了一种线性时间复杂度的算法来找出数组中只出现一次的元素,该算法不使用额外内存,通过位操作实现。示例输入为[2,2,1],输出为1;示例输入为[4,1,2,1,2],输出为4。
684

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



