必备知识
// 创建一个最大堆(默认)
priority_queue<int> maxHeap;
// 创建一个最小堆
priority_queue<int, vector<int>, greater<int>> minHeap;
示例代码
class Solution {
public:
int lastStoneWeight(vector<int>& stones) {
//创建一个最大堆(默认)
priority_queue<int> q;
for(int s:stones){
q.push(s);
}
while(q.size()>1){
int a=q.top();
q.pop();
int b=q.top();
q.pop();
if(a>b){
q.push(a-b);
}
}
return q.empty()?0:q.top();
}
};
效果展示