forked from fishercoder1534/Leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_2054.java
40 lines (38 loc) · 1.38 KB
/
_2054.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.fishercoder.solutions;
import java.util.Arrays;
public class _2054 {
public static class Solution1 {
public int maxTwoEvents(int[][] events) {
/**Credit: https://leetcode.com/nevergiveup/ on https://leetcode.com/contest/biweekly-contest-64/ranking/*/
Arrays.sort(events, (a, b) -> a[0] - b[0]);
int[] max = new int[events.length];
for (int i = events.length - 1; i >= 0; i--) {
if (i == events.length - 1) {
max[i] = events[i][2];
} else {
max[i] = Math.max(events[i][2], max[i + 1]);
}
}
int ans = 0;
for (int i = 0; i < events.length; i++) {
int end = events[i][1];
int left = i + 1;
int right = events.length;
while (left < right) {
int mid = left + (right - left) / 2;
if (events[mid][0] <= end) {
left = mid + 1;
} else {
right = mid;
}
}
int value = events[i][2];
if (right >= 0 && right < events.length) {
value += max[right];
}
ans = Math.max(ans, value);
}
return ans;
}
}
}