题目: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));
}
}
网友评论