Skip to content

Commit d965d5a

Browse files
committed
problem solution & test 0001
1 parent 3174f35 commit d965d5a

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

solutions/two_sum_0001.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from typing import List
2+
3+
class Solution:
4+
def twoSum(self, nums: List[int], target: int) -> List[int]:
5+
"""Возвращает индексы двух чисел из nums, сумма которых равна target.
6+
Работает за O(n): проходит по списку один раз, запоминая числа
7+
и их позиции в словаре. Для каждого элемента проверяет,
8+
было ли уже число (target - текущее). Если да — возвращает пару индексов.
9+
Гарантируется, что решение существует и уникально.
10+
"""
11+
seen = {}
12+
for index, num in enumerate(nums):
13+
complement = target - num
14+
if complement in seen:
15+
return [seen[complement], index]
16+
seen[num] = index
17+
raise ValueError('Нет решения')

0 commit comments

Comments
 (0)