871 最低加油次數

2021-10-22 17:43:30 字數 676 閱讀 2349

class solution 

//如果當前餘下的汽油不足以跑到這個加油站

while (curpos + gasleft < curstationpos)

//那麼著找出之前加油最多的油來加

//把最多的油加上去

gasleft += q.top();

q.pop();

addgastimes ++;

}//向前開的過程中肯定存在油量的消耗

const int gascost = curstationpos - curpos;

gasleft -= gascost;

//把這個加油站的油放入佇列中

//但是並不代表加到車裡了 知識作為儲備用油存到佇列裡

if (curstationgas > 0)

//過了這個站

i++;

//更新當前車輛的位置

curpos = curstationpos;

}return curpos + gasleft >= target? addgastimes : -1;

}};

複雜度分析:最差情況下,需要把所有的油都收集起來,此時所有的油都需要有 push 操作,所以時間複雜度為o(nlgn),而空間複雜度為o(n)。

題目

871 最低加油次數

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

871 最低加油次數

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

871 最低加油次數

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