問題描述
在一個班級中,每位同學都拿到了一張卡片,上面有一個整數。有趣的是,除了一個數字之外,所有的數字都恰好出現了兩次。現在需要你幫助班長小C快速找到那個拿了獨特數字卡片的同學手上的數字是什么。
要求:
-
設計一個算法,使其時間復雜度為 O(n),其中 n 是班級的人數。
-
盡量減少額外空間的使用,以體現你的算法優化能力。
代碼:
def solution(cards):
? ? # Edit your code here
? ? result = 0
? ? for num in cards:
? ? ? ? result ^= num
? ? return result
if __name__ == "__main__":
? ? # Add your test cases here
? ? print(solution([1, 1, 2, 2, 3, 3, 4, 5, 5]) == 4)
? ? print(solution([0, 1, 0, 1, 2]) == 2)