https://leetcode.com/problems/kth-largest-element-in-an-array/
Example 1:
Input: nums = [3,2,1,5,6,4], k = 2 Output: 5
Brute Force: sab elements ko Priority Queue me add kro, 'k' time element ko remove kro, max heap
TC: n log (n)
Method 2: 'k' size ki priority queue le lenge, ek ek kr kr element push kr denge isme, den remove krenge, jese hi end me mere paas last 'k' element bach jae to, aab jo main remove krunga woh 'k' largest number hoga
TC: n log (k)
package pep.Day66;
import java.util.PriorityQueue;
public class LeetCode_215_Kth_Largest_Element_in_Array {
public static void main(String[] args) {
int[] arr = new int[]{3, 2, 1, 5, 6, 4};
int k = 2;
System.out.println(findKthLargest(arr, k));
}
public static int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int i = 0; i < nums.length; i++) {
pq.add(nums[i]);
if (pq.size() > k)
pq.remove();
}
return pq.remove();
}
}
No comments:
Post a Comment