方法1:リスト操作
"" "トラバーサルは、異なるデータリスト内の各要素を検索する必要があります
。nums内の数値がno_duplicate_listにない場合は
、リストno_duplicate_listに追加します。
数値が既にリストにある場合は、削除します。" 「」
nums = [1,2,3,4,5,1,2,3,5]
no_duplicate_list = []
for i in nums:
if i not in no_duplicate_list:
no_duplicate_list.append(i)
else:
no_duplicate_list.remove(i)
print(no_duplicate_list.pop())
方法2:数学的方法(または収集方法)
'' '
数学的概念2 ∗(a + b + c)−(a + a + b + b + c)= c
' ''
nums = [1,2,3,4,2,3,4]
no_duplicate_list2 = 2*sum(set(nums)) - sum(nums)
print(no_duplicate_list2)
方法3:ビット演算(XORを使用)
'' '
0とバイナリビットでXOR演算を実行すると、結果はこのバイナリビット
a⊕0= aのまま
です。同じバイナリビットでXOR演算を実行すると、返される結果は0です
a⊕a= 0
XORは交換を満たします法則と結合法則
a⊕b⊕a=(a⊕a)⊕b=0⊕b= b
なので、一意の数値を取得するには、すべての数値をXORする必要があります。
'' '
nums = [1,3,5,1,3]
a = 0
for i in nums:
a ^= i
print(a)
方法4:ハッシュテーブル方式
'' ' numsのすべての要素を走査して、hash_tableに現在の要素のキーがあるかどうか
を
確認します。
ない場合は、現在の要素をキーとしてhash_tableに挿入します。
最後に、hash_tableに要素が1つだけあります。popitemを使用して取得します
' ''
nums = [1,2,3,4,3,2,1]
hash_table = {}
for i in nums:
try:
hash_table.pop(i)
except:
hash_table[i] = 1
print(hash_table.popitem()[0])