Skip to content

Commit 7ae0dca

Browse files
committedNov 27, 2024·
[LEET-3364] add 3364
1 parent db04d73 commit 7ae0dca

File tree

3 files changed

+164
-98
lines changed
  • paginated_contents/algorithms/4th_thousand
  • src

3 files changed

+164
-98
lines changed
 

‎paginated_contents/algorithms/4th_thousand/README.md

+99-98
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.fishercoder.solutions.fourththousand;
2+
3+
import java.util.List;
4+
5+
public class _3364 {
6+
public static class Solution1 {
7+
public int minimumSumSubarray(List<Integer> nums, int l, int r) {
8+
int minSum = Integer.MAX_VALUE;
9+
for (int len = l; len <= r; len++) {
10+
int sum = findSmallestSum(nums, len);
11+
if (sum > 0) {
12+
minSum = Math.min(minSum, sum);
13+
}
14+
}
15+
return minSum == Integer.MAX_VALUE ? -1 : minSum;
16+
}
17+
18+
private int findSmallestSum(List<Integer> nums, int len) {
19+
int sum = 0;
20+
int i = 0;
21+
for (; i < len; i++) {
22+
sum += nums.get(i);
23+
}
24+
int minSum = Integer.MAX_VALUE;
25+
if (sum > 0) {
26+
minSum = sum;
27+
}
28+
for (; i < nums.size(); i++) {
29+
sum -= nums.get(i - len);
30+
sum += nums.get(i);
31+
if (sum > 0) {
32+
minSum = Math.min(minSum, sum);
33+
}
34+
}
35+
return minSum;
36+
}
37+
}
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.fishercoder.fourththousand;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import com.fishercoder.solutions.fourththousand._3364;
6+
import java.util.Arrays;
7+
import org.junit.jupiter.api.BeforeEach;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class _3364Test {
11+
private _3364.Solution1 solution1;
12+
13+
@BeforeEach
14+
public void setup() {
15+
solution1 = new _3364.Solution1();
16+
}
17+
18+
@Test
19+
public void test1() {
20+
assertEquals(1, solution1.minimumSumSubarray(Arrays.asList(3, -2, 1, 4), 2, 3));
21+
}
22+
23+
@Test
24+
public void test2() {
25+
assertEquals(8, solution1.minimumSumSubarray(Arrays.asList(-12, 8), 1, 1));
26+
}
27+
}

0 commit comments

Comments
 (0)
Please sign in to comment.