Skip to content

Commit 25b840f

Browse files
committed
add: 209
1 parent 4c67954 commit 25b840f

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
| 120 | [Triangle](./src/120.triangle.py) | Medium | O(N^2) | O(N^2) | Array, Dynamic Programming | DP (Min - Max) |
1313
| 198 | [House Robber](./src/198.house-robber.py) | Medium | O(N) | O(N) | Array, Dynamic Programming | Recursion |
1414
| 200 | [Number of Islands](./src/200.number-of-islands.py) | Medium | O(R\*C) | O(R\*C) | Array, Depth-First Search, Breadth-First Search, Union Find, Matrix | DP |
15+
| 209 | [Minimum Size Subarray Sum](./src/209.minimum-size-subarray-sum.py) | Medium | O(N^2) | O(1) | Array, Binary Search, Sliding Window, Prefix Sum | |
1516
| 221 | [Maximal Square](./src/221.maximal-square.py) | Medium | O(R\*C) | O(1) | Array, Dynamic Programming, Matrix | DP (Min - Max) |
1617
| 279 | [Perfect Squares](./src/279.perfect-squares.py) | Medium | O(N\*log(N)) | O(N) | Math, Dynamic Programming, BFS | DP (Min - Max) |
1718
| 322 | [Coin Change](./src/322.coin-change.py) | Medium | O(A\*N) | O(A) | Array, Dynamic Programming, Breadth-First Search | DP (Min - Max) |

src/209.minimum-size-subarray-sum.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Level: Medium
2+
# TAGS: Array, Binary Search, Sliding Window, Prefix Sum
3+
4+
from typing import List
5+
6+
7+
class Solution:
8+
# Time: O(N^2) | Space: O(1)
9+
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
10+
left, total, n = 0, 0, len(nums)
11+
12+
min_len = float("inf")
13+
14+
for right in range(n):
15+
total += nums[right]
16+
17+
while total >= target:
18+
min_len = min(min_len, right - left + 1)
19+
total -= nums[left]
20+
left += 1
21+
22+
return 0 if min_len == float("inf") else min_len
23+
24+
25+
tests = [
26+
(
27+
(
28+
7,
29+
[2, 3, 1, 2, 4, 3],
30+
),
31+
2,
32+
),
33+
(
34+
(
35+
4,
36+
[1, 4, 4],
37+
),
38+
1,
39+
),
40+
(
41+
(
42+
11,
43+
[1, 1, 1, 1, 1, 1, 1, 1],
44+
),
45+
0,
46+
),
47+
]

0 commit comments

Comments
 (0)