一組成對的數字,找出不成對的數字

2022-08-30 18:09:14 字數 401 閱讀 5079

題面描述

有乙個卡組,卡組中所有不同的卡牌都有兩張。不小心遺失了一張,找出遺失的是哪張卡牌。

輸入資料

輸入資料的第一行為乙個整數 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...