std::vector<int> TopN_MinHeap(std::vector<int> &nums, int n)
{
std::priority_queue<int, std::vector<int>, std::greater<int>> q;
for (int i = 0; i < n; i++)
q.push(nums[i]);
int sizeOfNums = nums.size();
for (int i = n; i < sizeOfNums; i++)
{
q.push(nums[i]);
q.pop();
}
std::vector<int> result;
while (q.size() > 0) {
result.push_back(q.top());
q.pop();
}
return result;
}
本文介绍了一种利用最小堆数据结构从整数数组中找出前N个最小元素的方法。通过C++标准库提供的优先级队列实现最小堆,并演示了如何通过不断push和pop操作来维护堆中元素的数量,最终返回这些元素。
617

被折叠的 条评论
为什么被折叠?



