Given an 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?
输入一组整数如[1,1,2,3,3],几乎所有数都出现两次,只有一个数出现一次,找出这个数。
思路:异或。A xor A = 0, A xor B xor A = B
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ans=nums[0];
for(int i=1;i<nums.size();i++)
ans = ans xor nums[i];
return ans;
}
};

本文介绍了一种在整数数组中查找唯一出现一次数字的方法,该方法利用异或运算实现线性时间复杂度且不使用额外内存。适用于面试备考及算法优化。
438

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



