Posted on 2014-01-16 03:19
Uriel 閱讀(106)
評論(0) 編輯 收藏 引用 所屬分類:
LeetCode
給一堆數,其中只有一個只出現過1次,其他都出現2次,找出那個出現1次的,其實是簡單位運算,但是就沒往位運算上想,還在糾結怎么可能空間復雜度O(1),看了解題報告恍然大悟:
http://www.cnblogs.com/feiling/p/3349654.html就是不斷做異或運算就好,最后剩下的就是只出現了1次的那個數
1 class Solution {
2 public:
3 int singleNumber(int A[], int n) {
4 int tp = 0;
5 if(!n) return 0;
6 for(int i = 0; i < n; ++i) {
7 tp = tp ^ A[i];
8 }
9 return tp;
10 }
11 };