Kth Largest Element in an Array – Solution & Complexity

Solution Walkthrough

  1. Step 1: Understand the Goal

    • Identify the required output and the state that changes.
    • Use the examples to rule out tempting but incorrect interpretations.
  2. Step 2: Choose the Core Pattern

    • This problem is best exposed by Maintain a min-heap containing only the k largest values.
    • Maintain only the state needed for the next operation.
  3. Step 3: Build the Algorithm

    • Process each state once when possible.
    • Record state before scheduling dependent work to avoid duplicates.
  4. Step 4: Check Edge Cases

    • Verify the smallest input, impossible cases, and repeated values where allowed.
    • Keep output ordering deterministic.
  5. Step 5: Final Solution and Complexity

    • Time complexity is O(n log k).
    • Space complexity is O(k).
    def find_kth_largest(nums: list[int], k: int) -> int:
        import heapq
        heap = []
        for number in nums:
            heapq.heappush(heap, number)
            if len(heap) > k: heapq.heappop(heap)
        return heap[0]

FAQ