871 最低加油次數

2022-09-16 04:03:15 字數 987 閱讀 3114

汽車從起點出發駛向目的地,該目的地位於出發位置東面 target 英里處。

沿途有加油站,每個 station[i] 代表乙個加油站,它位於出發位置東面 station[i][0] 英里處,並且有 station[i][1] 公升汽油。

假設汽車油箱的容量是無限的,其中最初有 startfuel 公升燃料。它每行駛 1 英里就會用掉 1 公升汽油。

當汽車到達加油站時,它可能停下來加油,將所有汽油從加油站轉移到汽車中。

為了到達目的地,汽車所必要的最低加油次數是多少?如果無法到達目的地,則返回 -1 。

注意:如果汽車到達加油站時剩餘燃料為 0,它仍然可以在那裡加油。如果汽車到達目的地時剩餘燃料為 0,仍然認為它已經到達目的地。

import j**a.util.arrays;

import j**a.util.comparator;

import j**a.util.priorityqueue;

class solution

});priorityqueuequeue = new priorityqueue<>(new comparator()

});int ans = 0;

int fuel = startfuel;

int position = 0;

for (int i = 0; i < stations.length && position < target; ++i)

if (fuel < distance)

fuel -= distance;

position = stations[i][0];

queue.offer(stations[i][1]);

}position += fuel;

while (position < target && !queue.isempty())

return position >= target ? ans : -1;

}}

871 最低加油次數

汽車從起點出發駛向目的地,該目的地位於出發位置東面target英里處。沿途有加油站,每個station i 代表乙個加油站,它位於出發位置東面station i 0 英里處,並且有station i 1 公升汽油。假設汽車油箱的容量是無限的,其中最初有startfuel公升燃料。它每行駛 1 英里就...

871 最低加油次數

class solution 如果當前餘下的汽油不足以跑到這個加油站 while curpos gasleft curstationpos 那麼著找出之前加油最多的油來加 把最多的油加上去 gasleft q.top q.pop addgastimes 向前開的過程中肯定存在油量的消耗 const ...

871 最低加油次數

汽車從起點出發駛向目的地,該目的地位於出發位置東面 target 英里處。沿途有加油站,每個 station i 代表乙個加油站,它位於出發位置東面 station i 0 英里處,並且有 station i 1 公升汽油。假設汽車油箱的容量是無限的,其中最初有 startfuel 公升燃料。它每行...