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?
//我的写法就是最简单的
import java.util.ArrayList;
public class Solution {
public int singleNumber(int[] A) {
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < A.length; i++) {
if(list.contains(Integer.toString(A[i])))list.remove(Integer.toString(A[i]));
else {
list.add(Integer.toString(A[i]));
}
}
return Integer.parseInt(list.get(0));
}
}
//其他同学使用同一个元素的异或是0来得到结果
public static int singleNumber(int[] A) {
int num = 0;
for(int i=0;i<A.length;i++){
num^=A[i];
}
return num;
}