Skip to content

Commit 49b6423

Browse files
committed
Add algorithm: single_number using XOR
1 parent ca7004d commit 49b6423

File tree

2 files changed

+22
-20
lines changed

2 files changed

+22
-20
lines changed

maths/special_numbers/a_very_big_sum.py

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
def single_number(nums: list[int]) -> int:
2+
"""
3+
Find the element that appears only once in a list where every other element appears twice.
4+
5+
This algorithm uses bitwise XOR to cancel out duplicate numbers.
6+
7+
>>> single_number([2, 2, 1])
8+
1
9+
>>> single_number([4, 1, 2, 1, 2])
10+
4
11+
>>> single_number([1])
12+
1
13+
"""
14+
res = 0
15+
for n in nums:
16+
res ^= n
17+
return res
18+
19+
20+
if __name__ == "__main__":
21+
example = [4, 1, 2, 1, 2]
22+
print(single_number(example)) # Output: 4

0 commit comments

Comments
 (0)