[LeetCode OJ]-SingleNumber

题目:find the single number from a array which has two pairs numbers and a single number

思路:使用“异或”思想。

由于0^N = N

       N^N = 0

那么N1^N1^N2^N2^N3^N3^N4^N4^N

= (N1^N1)^(N2^N2)^(N3^N3)^(N4^N4)^N

=0^0^0^0^N

=N


public class SingleNumber {

//find the single number from a array which has two pairs numbers and a single number

//using ^.

public static int singleNumber(int[] nums) {

int r = nums[0];

for(int i = 1; i < nums.length; i++)

r ^= nums[i];

return r;

}

public static void main(String args[]){

int []array = {1,2,3,4,2,3,4};

System.out.println(singleNumber(array));

}

}

你可能感兴趣的:([LeetCode OJ]-SingleNumber)