881421. Kth smallest element

Medium

Here is a detailed Markdown blog post for the problem "Kth smallest element" on GeeksforGeeks:

Kth smallest element

Summary

Given an array of integers, find the kth smallest element in it. This problem involves using a priority queue or heap data structure to solve.

Detailed Explanation

The idea is to use a min-heap to store the elements from the array and then extract the root k times to get the kth smallest element. We start by inserting all elements of the array into the min-heap. Then, we extract the minimum (smallest) element from the heap k times. This will give us the kth smallest element.

Here is a step-by-step breakdown of the solution:

  1. Initialize an empty priority queue or min-heap.
  2. Insert all elements of the array into the min-heap. Since it's a min-heap, this will ensure that the smallest element is always at the top.
  3. Extract the minimum (smallest) element from the heap k times. This can be done using a method like extractMin() in a priority queue or a heap data structure.
  4. The kth extracted element will be the kth smallest element in the array.

Time complexity: O(k log n), where n is the size of the array and k is the value of k (the kth smallest element we are looking for). This is because each extraction from the min-heap takes logarithmic time, and we do this k times.

Space complexity: O(n), as we need to store all elements in the min-heap.

Optimized Solutions

Java

View on GeeksforGeeks
import java.util.PriorityQueue;

public class KthSmallest {
    public static int findKthSmallest(int[] arr, int k) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        
        for (int num : arr) {
            pq.offer(num);
        }
        
        for (int i = 0; i < k - 1; i++) {
            pq.poll();
        }
        
        return pq.peek();
    }
}

DevExCode

Master coding interviews with Leetcode, system design, TechBit, QuickLearn, DevTips, Tech Battles, and career services.

© 2026 DevExCode. All rights reserved.