Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
Input: [3,2,1,5,6,4] and k = 2 Output: 5
Input: [3,2,3,1,2,4,5,5,6] and k = 4 Output: 4
You may assume k is always valid, 1 ≤ k ≤ array's length.
import pytest from .Day16_KthLargestElementInAnArray import Solution s = Solution() @pytest.mark.parametrize( "nums,k,expected", [ ([3,2,1,5,6,4], 2, 5), ([3,2,3,1,2,4,5,5,6], 4, 4), ], ) def test_get_maximum_generated(nums, k, expected): assert s.findKthLargest(nums, k) == expected
from typing import List class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: return sorted(nums)[len(nums) - k]
Sorting the array and finding the kth from the end is clearly not the best solution but it's the simplest and it's Saturday.