Leetcode-single-number

题目描述

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?


这一题可以用异或来实现,当一个数a被另一个数b(b可以等于a)异或两次时,a不变。例如 0^b^a^c^c^b = a

1
2
3
4
5
6
7
8
9
public class Solution {
public int singleNumber(int[] A) {
int res = 0;
for(int a:A){
res ^= a;
}
return res;
}
}