30 lines
784 B
Java
30 lines
784 B
Java
|
class Solution {
|
||
|
private static final int END = 0;
|
||
|
private static final int START = 1;
|
||
|
|
||
|
private record Event(int time, int type, int payoff) {}
|
||
|
|
||
|
public int maxTwoEvents(int[][] events) {
|
||
|
var times = new ArrayList<Event>();
|
||
|
for (var event : events) {
|
||
|
times.add(new Event(event[0], START, event[2]));
|
||
|
times.add(new Event(event[1] + 1, END, event[2]));
|
||
|
}
|
||
|
times.sort(Comparator.comparing(Event::time).thenComparing(Event::type));
|
||
|
|
||
|
int answer = 0, maxPayoff = 0;
|
||
|
for (var time : times) {
|
||
|
switch (time.type) {
|
||
|
case START:
|
||
|
answer = Math.max(answer, time.payoff + maxPayoff);
|
||
|
break;
|
||
|
case END:
|
||
|
maxPayoff = Math.max(maxPayoff, time.payoff);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return answer;
|
||
|
}
|
||
|
}
|