Challenge - 5 Problems
Kth Smallest Element Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of Kth Smallest Element Extraction
What is the output of the following C++ code that finds the 3rd smallest element using a min heap?
DSA C++
#include <iostream> #include <vector> #include <queue> int kthSmallest(std::vector<int>& nums, int k) { std::priority_queue<int, std::vector<int>, std::greater<int>> minHeap(nums.begin(), nums.end()); int result = -1; for (int i = 0; i < k; ++i) { result = minHeap.top(); minHeap.pop(); } return result; } int main() { std::vector<int> nums = {7, 10, 4, 3, 20, 15}; int k = 3; std::cout << kthSmallest(nums, k) << std::endl; return 0; }
Attempts:
2 left
💡 Hint
Remember the min heap always pops the smallest element first.
✗ Incorrect
The min heap sorts elements as 3, 4, 7, 10, 15, 20. The 3rd smallest element popped is 7.
❓ Predict Output
intermediate2:00remaining
Result of Kth Smallest Element with Duplicate Values
What will be the output of this code snippet finding the 4th smallest element using a min heap?
DSA C++
#include <iostream> #include <vector> #include <queue> int kthSmallest(std::vector<int>& nums, int k) { std::priority_queue<int, std::vector<int>, std::greater<int>> minHeap(nums.begin(), nums.end()); int result = -1; for (int i = 0; i < k; ++i) { result = minHeap.top(); minHeap.pop(); } return result; } int main() { std::vector<int> nums = {5, 3, 3, 1, 2, 2}; int k = 4; std::cout << kthSmallest(nums, k) << std::endl; return 0; }
Attempts:
2 left
💡 Hint
Duplicates are included in the heap and count as separate elements.
✗ Incorrect
The sorted order is 1, 2, 2, 3, 3, 5. The 4th smallest element is 3.
🧠 Conceptual
advanced1:30remaining
Time Complexity of Kth Smallest Element Using Min Heap
What is the time complexity of finding the kth smallest element in an array of size n using a min heap built from the entire array?
Attempts:
2 left
💡 Hint
Building a heap from n elements takes linear time, then each pop takes log n time.
✗ Incorrect
Building the min heap takes O(n). Extracting k elements takes O(k log n). Total is O(n + k log n).
🔧 Debug
advanced2:00remaining
Identify the Bug in Kth Smallest Element Code
What error will this code produce when trying to find the 2nd smallest element?
DSA C++
#include <iostream> #include <vector> #include <queue> int kthSmallest(std::vector<int>& nums, int k) { std::priority_queue<int> minHeap(nums.begin(), nums.end()); int result = -1; for (int i = 0; i < k; ++i) { result = minHeap.top(); minHeap.pop(); } return result; } int main() { std::vector<int> nums = {8, 16, 4, 10}; int k = 2; std::cout << kthSmallest(nums, k) << std::endl; return 0; }
Attempts:
2 left
💡 Hint
Check the type of priority queue used and how it orders elements.
✗ Incorrect
The priority_queue by default is a max heap, so top() returns the largest element. The 2nd largest is 10, not the 2nd smallest.
🚀 Application
expert2:30remaining
Kth Smallest Element in a Stream Using Min Heap
You want to maintain the kth smallest element in a stream of numbers arriving one by one. Which data structure and approach is best?
Attempts:
2 left
💡 Hint
Keep only k elements to optimize time and space.
✗ Incorrect
A max heap of size k keeps track of the k smallest elements efficiently. The top is the kth smallest. Min heap of all elements or sorting each time is inefficient.