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?

数组中除了某个元素出现一次,其他都出现两次,找出只出现一次的元素。

一个数字和自己异或 结果为 0,一个数字与0异或 结果还为它自己

比如数组:[6,6,3]  ,6和6异或为0,0与3异或为3,因此将数组中所有的元素异或一遍即为最终的结果:

 1 public class Solution {
 2     public int singleNumber(int[] A) {
 3         
 4          int n = A.length;
 5          int result = 0;
 6          
 7          for(int i = 0 ; i < n ; i ++)
 8             result ^= A[i];
 9             
10          return result;
11     }
12 }

 

posted @ 2014-10-21 21:22  非著名程序师  阅读(354)  评论(0编辑  收藏