本系列产生的一切目的为督促本人早起。(?)
今日题目:
思路:优先队列
//优先队列
class Solution {
public:
int minStoneSum(vector<int>& piles, int k) {
priority_queue<int, vector<int>, less<int>> pq;
for(int i:piles) pq.push(i);
while(k--){
int t = pq.top();
pq.pop();
if((t&1)==1) {
t=t/2 +1;
pq.push(t);
}else pq.push(t/2);
}
int res =0;
while(!pq.empty()) {
cout<<pq.top()<<" ";
res += pq.top();
pq.pop();
}
return res;
}
};
以上。