public class Solution {
public int FindKthLargest(int[] nums, int k) {
Array.Sort(nums);
k=nums.Length-k;
return nums[k];
}
}
public class Solution {
public int FindKthLargest(int[] nums, int k) {
// Create a Min Heap
SortedSet<(int num, int index)> minHeap = new SortedSet<(int num, int index)>();
int i = 0;
// Add the first 'k' numbers in the min heap
for (; i < k; i++)
minHeap.Add((nums[i], i));
// Go through the remaining numbers of the array, if the number from the array is bigger than the
// top (smallest) number of the min-heap, remove the top number from heap and add the number from array
for (; i < nums.Length; i++) {
if (nums[i] > minHeap.Min.num) {
minHeap.Remove(minHeap.Min);
minHeap.Add((nums[i], i));
}
}
// The root of the heap has the 'Kth' largest number
return minHeap.Min.num;
}
}