File tree Expand file tree Collapse file tree 1 file changed +25
-7
lines changed
3386-button-with-longest-push-time Expand file tree Collapse file tree 1 file changed +25
-7
lines changed Original file line number Diff line number Diff line change 1
1
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
+ // }
2
14
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
+ }
8
26
}
9
- int [] res = pq . peek ();
10
- return res [ 1 ] ;
27
+
28
+ return ans ;
11
29
}
12
30
}
You can’t perform that action at this time.
0 commit comments