Skip to content

Commit d65430e

Browse files
authored
Fix
1 parent 92e2640 commit d65430e

File tree

1 file changed

+39
-28
lines changed

1 file changed

+39
-28
lines changed

dynamic_programming/minimum_size_subarray_sum.py

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,39 @@ def minimum_subarray_sum(target: int, numbers: list[int]) -> int:
55
"""
66
Returns the length of the shortest contiguous subarray
77
in a list of numbers whose sum is at least target.
8-
>>> minimum_subarray_sum(7, [2, 3, 1, 2, 4, 3])
9-
2
10-
>>> minimum_subarray_sum(7, [2, 3, -1, 2, 4, -3])
11-
4
12-
>>> minimum_subarray_sum(11, [1, 1, 1, 1, 1, 1, 1, 1])
13-
0
14-
>>> minimum_subarray_sum(10, [1, 2, 3, 4, 5, 6, 7])
15-
2
16-
>>> minimum_subarray_sum(5, [1, 1, 1, 1, 1, 5])
17-
1
18-
>>> minimum_subarray_sum(0, [])
19-
0
20-
>>> minimum_subarray_sum(10, [10, 20, 30])
21-
1
22-
>>> minimum_subarray_sum(7, [1, 1, 1, 1, 1, 1, 10])
23-
1
24-
>>> minimum_subarray_sum(6, [])
25-
0
26-
>>> minimum_subarray_sum(2, [1, 2, 3])
27-
1
28-
>>> minimum_subarray_sum(-6, [])
29-
0
30-
>>> minimum_subarray_sum(8, None)
31-
0
32-
>>> minimum_subarray_sum(2, "ABC")
33-
Traceback (most recent call last):
8+
9+
>>> minimum_subarray_sum(7, [2, 3, 1, 2, 4, 3])
10+
2
11+
>>> minimum_subarray_sum(7, [2, 3, -1, 2, 4, -3])
12+
4
13+
>>> minimum_subarray_sum(11, [1, 1, 1, 1, 1, 1, 1, 1])
14+
0
15+
>>> minimum_subarray_sum(10, [1, 2, 3, 4, 5, 6, 7])
16+
2
17+
>>> minimum_subarray_sum(5, [1, 1, 1, 1, 1, 5])
18+
1
19+
>>> minimum_subarray_sum(0, [])
20+
0
21+
>>> minimum_subarray_sum(0, [1, 2, 3])
22+
0
23+
>>> minimum_subarray_sum(10, [10, 20, 30])
24+
1
25+
>>> minimum_subarray_sum(7, [1, 1, 1, 1, 1, 1, 10])
26+
1
27+
>>> minimum_subarray_sum(6, [])
28+
0
29+
>>> minimum_subarray_sum(2, [1, 2, 3])
30+
1
31+
>>> minimum_subarray_sum(-6, [])
32+
0
33+
>>> minimum_subarray_sum(-6, [3, 4, 5])
34+
0
35+
>>> minimum_subarray_sum(8, None)
36+
0
37+
>>> minimum_subarray_sum(2, "ABC")
38+
Traceback (most recent call last):
3439
...
35-
ValueError: numbers must be an iterable of integers
40+
ValueError: numbers must be an iterable of integers
3641
"""
3742

3843
if not numbers:
@@ -41,9 +46,9 @@ def minimum_subarray_sum(target: int, numbers: list[int]) -> int:
4146
isinstance(number, int) for number in numbers
4247
):
4348
raise ValueError("numbers must be an iterable of integers")
49+
4450
left = right = curr_sum = 0
4551
min_len = sys.maxsize
46-
4752
for right, number in enumerate(numbers):
4853
curr_sum += number
4954
while curr_sum >= target:
@@ -52,3 +57,9 @@ def minimum_subarray_sum(target: int, numbers: list[int]) -> int:
5257
left += 1
5358

5459
return 0 if min_len == sys.maxsize else min_len
60+
61+
62+
if __name__ == "__main__":
63+
from doctest import testmod
64+
65+
testmod()()

0 commit comments

Comments
 (0)