给出 2 * n + 1
个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
- n≤100
样例
样例 1:
输入:[1,1,2,2,3,4,4]
输出:3
解释:
仅3出现一次
样例 2:
输入:[0,0,1]
输出:1
解释:
仅1出现一次
挑战
一次遍历,常数级的额外空间复杂度
public class Solution {
public int singleNumber(int[] A) {
// write your code here
int temp = 0;
for(int i=0;i<A.length;i++){
temp ^= A[i];
}
return temp;
}
}
利用异或,相同的数异或结果为0,遍历一遍后,结果就是要找的数据