Skip to content

Commit 78e3cec

Browse files
committed
Refactor has_pair_with_sum function to improve efficiency and update documentation
1 parent 749da3a commit 78e3cec

1 file changed

Lines changed: 22 additions & 13 deletions

File tree

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
1-
from typing import List, TypeVar
1+
def has_pair_with_sum(numbers, target_sum):
22

3-
Number = TypeVar("Number", int, float)
3+
seen = set()
44

5+
for number in numbers:
6+
complement = target_sum - number
57

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.
8+
if complement in seen:
9+
return True
10+
11+
seen.add(number)
912

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
1813
return False
14+
15+
16+
print(has_pair_with_sum([2, 4, 6, 8], 10))
17+
# True
18+
19+
print(has_pair_with_sum([1, 2, 3], 10))
20+
# False
21+
"""
22+
Find if there is a pair of numbers that sum to a target value.
23+
24+
Time Complexity: O(n²)
25+
Space Complexity: O(1)
26+
Optimal Time Complexity: O(n)
27+
"""

0 commit comments

Comments
 (0)