diff --git a/Top K elements Priority_queue.cpp b/Top K elements Priority_queue.cpp new file mode 100644 index 00000000..8c197713 --- /dev/null +++ b/Top K elements Priority_queue.cpp @@ -0,0 +1,42 @@ +#include +using namespace std; + +void topKElements(const vector& nums, int k) { + //priority_queue maxHeap; + // OR + // priority_queue, less> maxHeap; + + priority_queue, greater> minHeap; + + for (int num : nums) { + minHeap.push(num); + if (minHeap.size() > k) { + minHeap.pop(); // remove the smallest + } + } + + + while (!minHeap.empty()) { + cout << minHeap.top() < nums = {4, 1, 7, 3, 9, 2, 6}; + int k = 3; + + cout << "Top " << k << " elements are: "<