* 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?
package com.leetcode.bitoperation;
/**
* 题目:
* 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?
*
*/
public class SingleNumber {
/**
* 思路:
* 两个相同的数异或运算结果为0,所以数组中的元素
* 依次进行异或运算,最后剩下的就是只存在一次的数字
*/
public int singleNumber(int[] A) {
if (A == null || A.length <= 0) {
return 0;
}
int ret = 0;
for (int a : A) {
// 相同两个数的异或为0
ret ^= a;
}
return ret;
}
public static void main(String[] args) {
int[] A = {1,2,1,3,2};
System.out.println(new SingleNumber().singleNumber(A));
}
}
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...