码迷,mamicode.com
首页 > 其他好文 > 详细

Single Number

时间:2015-04-03 22:20:06      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

Given an array of integers, every element appears twice except for one. Find that single one.

给出一组数据,每个元素出现两次,除了一个元素之外,找到那个出现一次的元素。

 

思路:

a^b=b^a 所以 假设 把所有相同的先进行异或

然后 出现多个0 ;

0与 那单个元素异或 ;

则 最后 剩下来那个 就是 single one。

 

C++:

 1 class Solution {
 2 public:
 3     int singleNumber(int A[], int n) {
 4         if(n==0||A==NULL) return 0;
 5         
 6         int tmp=A[0];
 7         int i=0;
 8         for(i=1;i<n;i++)
 9         {
10             tmp=tmp^A[i];
11         }
12         
13         return tmp;
14     }
15 };

 

Python:

1 class Solution:
2     # @param A, a list of integer
3     # @return an integer
4     def singleNumber(self, A):
5         res=A[0]
6         for i in range(1,len(A)):
7             res=res^A[i]
8         return res

 

Python另一种方法:

def singleNumber(self, A):
        dict = {}
        for i in range(len(A)):
            if A[i] not in dict:
                dict[A[i]] = 1
            else:
                dict[A[i]] += 1
        for word in dict:
            if dict[word] == 1:
                return word

 

Single Number

标签:

原文地址:http://www.cnblogs.com/jawiezhu/p/4391114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!