題面描述
有乙個卡組,卡組中所有不同的卡牌都有兩張。不小心遺失了一張,找出遺失的是哪張卡牌。
輸入資料
輸入資料的第一行為乙個整數 t(1 <= t <= 10) ,表示有 t 組測試資料。每組資料的第一行為乙個整數 n(2 <= n <=100000) , n 為偶數,表示乙個卡組中卡牌的數量。接下來的一行有 n - 1 個整數,為剩餘牌的編號,其中相同牌的編號相同,不同牌的編號不同。
輸出資料
對於每組資料,在單獨的一行中輸出結果,為滑落牌的編號,格式見樣例。
樣例輸入22
141 1 2
樣例 case #1: 1
case #2: 2
解題思路:
可以通過位操作來做。兩個相同的數進行【異或^操作】結果為0,否則為1。
有關陣列中出現不成對數字的例題解析
1.一組資料中只有乙個數字出現了一次。其他所有數字都是成對出現的。請找出這個數字。使用位運算 思路 可以將所有數字進行異或,因為相同數字異或之後結果為0,任何數與0異或得該數字本身。此題中將所有數字進行異或的結果就是需要找的那個數字。具體實現如下 include include int main i...
找出2n 1個數中不成對的那個
問題定義 有2n 1個數,只有乙個單著,別的都是成對的,找出這個單著的數。比如 2 1 3 2 1。3是答案。思路一 暴力搜尋 每個數都和其他數比較,找不到相同的,就得到了結果。時間複雜度為o n2 思路二 排序搜尋 先給序列排個序,之後從前往後一對一對的找,直到不是成對的為止。時間複雜度,怎麼也得...
找出2n 1個數中不成對的那個
用o n 複雜度搞定。異或操作 對於位操作 相同為0,相異為1.比如 1 0 1,1 1 0 這樣 對於2,1,3,2,1,2 2 1 1 3 3.如此就能將不成對的3找出來。異或具有交換律,所以可以按順序計算,2 1 3 2 1 3。如下 include include include int a...