Skip to content

Commit 19bad42

Browse files
committedApr 25, 2022
feat: add solutions to lc problems: No.0209
No.0209.Minimum Size Subarray Sum
1 parent a8b24e9 commit 19bad42

File tree

4 files changed

+137
-0
lines changed

4 files changed

+137
-0
lines changed
 

‎solution/0200-0299/0209.Minimum Size Subarray Sum/README.md

+49
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,55 @@ public class Solution {
273273
}
274274
```
275275

276+
### **TypeScript**
277+
278+
```ts
279+
function minSubArrayLen(target: number, nums: number[]): number {
280+
const n = nums.length;
281+
let res = Infinity;
282+
let sum = 0;
283+
let i = 0;
284+
let j = 0;
285+
while (j <= n) {
286+
if (sum < target) {
287+
sum += nums[j];
288+
j++;
289+
} else {
290+
res = Math.min(res, j - i);
291+
sum -= nums[i];
292+
i++;
293+
}
294+
}
295+
return res === Infinity ? 0 : res;
296+
}
297+
```
298+
299+
### **Rust**
300+
301+
```rust
302+
impl Solution {
303+
pub fn min_sub_array_len(target: i32, nums: Vec<i32>) -> i32 {
304+
let n = nums.len();
305+
let mut res = n + 1;
306+
let mut sum = 0;
307+
let mut l = 0;
308+
for r in 0..n {
309+
sum += nums[r];
310+
311+
while sum >= target {
312+
res = res.min(r - l + 1);
313+
sum -= nums[l];
314+
l += 1;
315+
}
316+
}
317+
if res == n + 1 {
318+
return 0;
319+
}
320+
res as i32
321+
}
322+
}
323+
```
324+
276325
### **...**
277326

278327
```

‎solution/0200-0299/0209.Minimum Size Subarray Sum/README_EN.md

+49
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,55 @@ public class Solution {
248248
}
249249
```
250250

251+
### **TypeScript**
252+
253+
```ts
254+
function minSubArrayLen(target: number, nums: number[]): number {
255+
const n = nums.length;
256+
let res = Infinity;
257+
let sum = 0;
258+
let i = 0;
259+
let j = 0;
260+
while (j <= n) {
261+
if (sum < target) {
262+
sum += nums[j];
263+
j++;
264+
} else {
265+
res = Math.min(res, j - i);
266+
sum -= nums[i];
267+
i++;
268+
}
269+
}
270+
return res === Infinity ? 0 : res;
271+
}
272+
```
273+
274+
### **Rust**
275+
276+
```rust
277+
impl Solution {
278+
pub fn min_sub_array_len(target: i32, nums: Vec<i32>) -> i32 {
279+
let n = nums.len();
280+
let mut res = n + 1;
281+
let mut sum = 0;
282+
let mut l = 0;
283+
for r in 0..n {
284+
sum += nums[r];
285+
286+
while sum >= target {
287+
res = res.min(r - l + 1);
288+
sum -= nums[l];
289+
l += 1;
290+
}
291+
}
292+
if res == n + 1 {
293+
return 0;
294+
}
295+
res as i32
296+
}
297+
}
298+
```
299+
251300
### **...**
252301

253302
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
impl Solution {
2+
pub fn min_sub_array_len(target: i32, nums: Vec<i32>) -> i32 {
3+
let n = nums.len();
4+
let mut res = n + 1;
5+
let mut sum = 0;
6+
let mut l = 0;
7+
for r in 0..n {
8+
sum += nums[r];
9+
10+
while sum >= target {
11+
res = res.min(r - l + 1);
12+
sum -= nums[l];
13+
l += 1;
14+
}
15+
}
16+
if res == n + 1 {
17+
return 0;
18+
}
19+
res as i32
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function minSubArrayLen(target: number, nums: number[]): number {
2+
const n = nums.length;
3+
let res = Infinity;
4+
let sum = 0;
5+
let i = 0;
6+
let j = 0;
7+
while (j <= n) {
8+
if (sum < target) {
9+
sum += nums[j];
10+
j++;
11+
} else {
12+
res = Math.min(res, j - i);
13+
sum -= nums[i];
14+
i++;
15+
}
16+
}
17+
return res === Infinity ? 0 : res;
18+
}

0 commit comments

Comments
 (0)