Skip to content

Commit 34eefad

Browse files
authored
Update minimum_size_subarray_sum.py
1 parent f00d071 commit 34eefad

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

dynamic_programming/minimum_size_subarray_sum.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,45 @@
1+
import sys
2+
13
def minimum_subarray_sum(target: int, numbers: list[int]) -> int:
24
"""
35
Returns the length of the shortest contiguous subarray
46
in a list of numbers whose sum is at least target.
5-
6-
>>> minsubarraysum(7, [2, 3, 1, 2, 4, 3])
7+
>>> minimum_subarray_sum(7, [2, 3, 1, 2, 4, 3])
78
2
8-
>>> minsubarraysum(7, [2, 3, -1, 2, 4, -3])
9+
>>> minimum_subarray_sum(7, [2, 3, -1, 2, 4, -3])
910
4
10-
>>> minsubarraysum(11, [1, 1, 1, 1, 1, 1, 1, 1])
11+
>>> minimum_subarray_sum(11, [1, 1, 1, 1, 1, 1, 1, 1])
1112
0
12-
>>> minsubarraysum(10, [1, 2, 3, 4, 5, 6, 7])
13+
>>> minimum_subarray_sum(10, [1, 2, 3, 4, 5, 6, 7])
1314
2
14-
>>> minsubarraysum(5, [1, 1, 1, 1, 1, 5])
15+
>>> minimum_subarray_sum(5, [1, 1, 1, 1, 1, 5])
1516
1
16-
>>> minsubarraysum(0, [])
17+
>>> minimum_subarray_sum(0, [])
1718
0
18-
>>> minsubarraysum(10, [10, 20, 30])
19+
>>> minimum_subarray_sum(10, [10, 20, 30])
20+
1
21+
>>> minimum_subarray_sum(7, [1, 1, 1, 1, 1, 1, 10])
1922
1
20-
>>> minsubarraysum(7, [1, 1, 1, 1, 1, 1, 10])
23+
>>> minimum_subarray_sum(6, [])
24+
0
25+
>>> minimum_subarray_sum(2, [1, 2, 3])
2126
1
27+
>>> minimum_subarray_sum(-6, [])
28+
0
29+
>>> minimum_subarray_sum(8, None)
30+
0
31+
>>> minimum_subarray_sum(2, "ABC")
32+
Traceback (most recent call last):
33+
...
34+
ValueError: numbers must be an iterable of integers
2235
"""
2336

2437
if not numbers:
2538
return 0
39+
if not isinstance(numbers, (list, tuple)) or not all(
40+
isinstance(number, int) for number in numbers
41+
):
42+
raise ValueError("numbers must be an iterable of integers")
2643
left = right = curr_sum = 0
2744
min_len = sys.maxsize
2845

0 commit comments

Comments
 (0)