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 11class 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}
You can’t perform that action at this time.
0 commit comments