原题链接:Leetcode 871. 最低加油次数
class Solution {
public:
int minRefuelStops(int target, int startFuel, vector<vector<int>>& stations) {
stations.push_back(vector<int>({target,0}));
int res=0,pos=0,tank=startFuel;
priority_queue<int> pq;
for(auto v: stations)
{
int curpos=v[0],curval=v[1];
tank=tank-(curpos-pos);
while(!pq.empty() && tank<0)
{
tank+=pq.top();
pq.pop();
res++;
}
if(tank<0) return -1;
pos=curpos;
pq.push(curval);
}
return res;
}
};