给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
用异或 :n^n = 0; 0^n = n.
所以将数组的元素挨个异或就可以了。
public static int findNum(int[] array) {
int ret = array[0];
for (int i = 1; i < array.length; i++) {
ret ^= array[i];
}
return ret;
}
public static void main(String[] args) {
int[] array = {1,1,2,2,3,4,4};
int ret = findNum(array);
System.out.println(ret);
}