首页 > 代码库 > Single Number

Single Number

给一个整数数组,其中只有一个数字成单,其他数字都是成对出现,要在线性时间且不花费额外存储空间的条件下找出成单的数字。

 

解决起来出奇的简单,主要运用到异或运算的两个基本性质:

交换律:a^b^c=a^(b^c)

a^a=0  a^0=a

所以得到以下代码:

public class Solution {    public int singleNumber(int[] A) {                for (int i = 1; i < A.length; i++) {            A[0] = A[0] ^ A[i];        }        return A[0];            }}

 

Single Number