题目:
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,当两个不一样的数进行操作时,结果为1。
public class Solution {
public int singleNumber(int[] nums) {
int result =0;
for(int i=0;i<nums.length;i++)
result ^=nums[i];
return result;
}
}