原题:
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?
题意:
给定一个整数数组,除了一个元素出现一次之外,每个元素都出现了两次,找出那个单独的元素。
注意:
你的算法必须有一个线性的时间复杂度,你可以不用额外的存储空间实现它吗?
思路:
利用相同整数异或之后为0的性质即可。
代码:
public class Solution {
public int singleNumber(int[] nums) {
for(int i = 1;i < nums.length;i++){
nums[0] ^= nums[i];
}
return nums[0];
}
}