leetcode 134 加油站問題

2022-04-03 17:08:50 字數 889 閱讀 4677

leetcode 134 解析

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油gas[i]公升。

你有一輛油箱容量無限的的汽車,從第i 個加油站開往第i+1 個加油站需要消耗汽油cost[i]公升。你從其中的乙個加油站出發,開始時油箱為空。

如果你可以繞環路行駛一周,則返回出發時加油站的編號,否則返回 -1。

說明: 

自己的答案,基本算是暴力解法了,雙重迴圈,不過考慮實際情況大多數都break掉了,測試時間也還好,c++**如下:

c++解法一:

1

class

solution else18}

19if((m==l-1)&&(oil-cost[i+m]>=0

))23

}24 i++;25}

26return

re;27

}28 };

最優解:

只遍歷一遍,有三個特徵量,total,sum,start

start用來記錄起點,也就是最終的返回值;

total用來記錄整個環的gas和cost,即驗證能否滿足走完一圈的最低條件;

sum用來記錄start到當前點是否滿足向前行駛的條件;

時間複雜度只有o(n);

但我總覺得這個程式實際上必須是滿足total>0一定有解,這個解就是sum>0的第乙個點的下標;至於為什麼滿足這個條件一定有解,等想明白了再更新;

c++解法二:

1

class

solution

1213}14

return (total<0)? -1

: start;15}

16 };

leetcode134 加油站 貪心

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas i 公升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i 1 個加油站需要消耗汽油 cost i 公升。你從其中的乙個加油站出發,開始時油箱為空。如果你可以繞環路行駛一周,則返回出發時加油站的編號,否則返回 1。說明 如果...

加油站問題LeetCode 134

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas i 公升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i 1 個加油站需要消耗汽油 cost i 公升。你從其中的乙個加油站出發,開始時油箱為空。如果你可以繞環路行駛一周,則返回出發時加油站的編號,否則返回 1。說明 示例...

LeetCode貪心 134 加油站

題目描述 在一條環路上有 n 個加油站,其中第 i 個加油站有汽油gas i 公升。你有一輛油箱容量無限的的汽車,從第i 個加油站開往第i 1 個加油站需要消耗汽油cost i 公升。你從其中的乙個加油站出發,開始時油箱為空。如果你可以繞環路行駛一周,則返回出發時加油站的編號,否則返回 1。說明 示...