Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 76f4e44

Browse files
committed
Time: 0 ms (100.00%), Space: 44.4 MB (100.00%) - LeetHub
1 parent 4973473 commit 76f4e44

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed
Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,30 @@
11
class Solution {
2+
// public int buttonWithLongestTime(int[][] events) {
3+
// TC : nlogn
4+
// SC : n
5+
// PriorityQueue<int[]> pq = new PriorityQueue<>((a,b)->(a[0]==b[0] ? a[1]-b[1] : b[0]-a[0]));
6+
// pq.offer(new int[]{events[0][1] , events[0][0]});
7+
// for(int i=1;i<events.length;i++){
8+
// int diff = events[i][1] - events[i-1][1];
9+
// pq.offer(new int[]{diff , events[i][0]});
10+
// }
11+
// int[] res = pq.peek();
12+
// return res[1];
13+
// }
214
public int buttonWithLongestTime(int[][] events) {
3-
PriorityQueue<int[]> pq = new PriorityQueue<>((a,b)->(a[0]==b[0] ? a[1]-b[1] : b[0]-a[0]));
4-
pq.offer(new int[]{events[0][1] , events[0][0]});
5-
for(int i=1;i<events.length;i++){
6-
int diff = events[i][1] - events[i-1][1];
7-
pq.offer(new int[]{diff , events[i][0]});
15+
//
16+
int longest = events[0][1];
17+
int ans = events[0][0];
18+
19+
for (int i = 1; i < events.length; i++) {
20+
int delta = events[i][1] - events[i - 1][1];
21+
int index = events[i][0];
22+
if (delta > longest || delta == longest && index < ans) {
23+
longest = delta;
24+
ans = index;
25+
}
826
}
9-
int[] res = pq.peek();
10-
return res[1];
27+
28+
return ans;
1129
}
1230
}

0 commit comments

Comments
 (0)