Skip to content

Commit 216b403

Browse files
committed
refactor: optimize pair sum lookup with set
1 parent 59beb9f commit 216b403

1 file changed

Lines changed: 21 additions & 10 deletions

File tree

‎Sprint-1/Python/has_pair_with_sum/has_pair_with_sum.py‎

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,27 @@
33
Number = TypeVar("Number", int, float)
44

55

6+
# def has_pair_with_sum(numbers: List[Number], target_sum: Number) -> bool:
7+
# """
8+
# Find if there is a pair of numbers that sum to a target value.
9+
10+
# Time Complexity:
11+
# Space Complexity:
12+
# Optimal time complexity:
13+
# """
14+
# for i in range(len(numbers)):
15+
# for j in range(i + 1, len(numbers)):
16+
# if numbers[i] + numbers[j] == target_sum:
17+
# return True
18+
# return False
19+
620
def has_pair_with_sum(numbers: List[Number], target_sum: Number) -> bool:
7-
"""
8-
Find if there is a pair of numbers that sum to a target value.
21+
seen = set()
22+
for num in numbers:
23+
needed = target_sum - num
24+
if needed in seen:
25+
return True
26+
27+
seen.add(num)
928

10-
Time Complexity:
11-
Space Complexity:
12-
Optimal time complexity:
13-
"""
14-
for i in range(len(numbers)):
15-
for j in range(i + 1, len(numbers)):
16-
if numbers[i] + numbers[j] == target_sum:
17-
return True
1829
return False

0 commit comments

Comments
 (0)