题目:
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?
思路与步骤:
极低效率思路:
用 HashMap
先排序
高效思路:
学习别人的思路
用XOR,注意数组中用到抑或时常常会所有的数字一起抑或,因为在数组中单独两个数字抑或意义不大。
编程实现:
这里只给出用抑或实现的程序
public class Solution {
public int singleNumber(int[] nums) {
int result = 0;
for (int n: nums) result ^= n;
return result;
}
}