Skip to content

Commit 143ad44

Browse files
authored
Merge pull request chipbk10#117 from chipbk10/Intervals
Intervals
2 parents fc86d80 + f3e62ee commit 143ad44

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

src/contest/ReadMe.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class ReadMe {
2323
// bit manipulation: 1356[v] 1342[v] 1318[v] 1310[v] 371[v]
2424
// other: 913[x] 1288[v] 843[x!] 1032[v] 850[x]
2525

26-
// intervals: 546, 312, 1000, 1353, 1288, 1235, 252, 253, 495, 616, 759, 646, 435 [x]
26+
// intervals: 546, 312, 1000, 1353, 1288, 1235, 252, 253, 495, 616, 759, 646, 435, 56 [x]
2727

2828

2929
// ~: vague
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package intervals;
2+
3+
public class Problem312_BurstBalloons {
4+
5+
public int maxCoins(int[] A) {
6+
int n = A.length, dp[][] = new int[n][n];
7+
return dfs(A, dp, 0, n-1);
8+
}
9+
10+
private int dfs(int[] A, int[][] dp, int l, int r) {
11+
if (l > r) return 0;
12+
if (dp[l][r] != 0) return dp[l][r];
13+
for (int i = l; i <= r; i++) {
14+
int p = A[i];
15+
if (l > 0) p *= A[l-1];
16+
if (r < A.length-1) p *= A[r+1];
17+
dp[l][r] = Math.max(dp[l][r], p + dfs(A, dp, l, i-1) + dfs(A, dp, i+1, r));
18+
}
19+
return dp[l][r];
20+
}
21+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package intervals;
2+
3+
import java.util.Arrays;
4+
5+
public class Problem452_MinimumNumberOfArrowsToBurstBalloons {
6+
7+
public int findMinArrowShots(int[][] A) {
8+
Arrays.sort(A, (a, b) -> a[1]-b[1]);
9+
long burst = Long.MIN_VALUE;
10+
int res = 0;
11+
for (int[] a : A) {
12+
if (burst < a[0]) {
13+
burst = (long)a[1];
14+
res++;
15+
}
16+
}
17+
return res;
18+
}
19+
}

0 commit comments

Comments
 (0)