forked from bellshade/Python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
two_sum.py
34 lines (27 loc) · 878 Bytes
/
two_sum.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Diberikan array bilangan bulat, kembalikan indeks dari
# dua angka sedemikian rupa sehingga jumlahnya menjadi
# target tertentu.
# Anda mungkin berasumsi bahwa setiap input
# akan memiliki tepat satu solusi,
# dan Anda tidak boleh menggunakan
# elemen yang sama dua kali. informasi tentang two sum
# https://leetcode.com/problems/two-sum/
from __future__ import annotations
def two_sum(nums: list[int], target: int) -> list[int]:
"""
>>> two_sum([2, 7, 11, 15], 9)
[0, 1]
>>> two_sum([15, 2, 11, 7], 13)
[1, 2]
"""
chk_map: dict[int, int] = {}
for index, val in enumerate(nums):
compl = target - val
if compl in chk_map:
return [chk_map[compl], index]
chk_map[val] = index
return []
if __name__ == "__main__":
import doctest
doctest.testmod()
print(f"{two_sum([2, 7, 11, 15], 9) = }")