leetcode 134 解析
在一條環路上有 n 個加油站,其中第 i 個加油站有汽油gas[i]
公升。
你有一輛油箱容量無限的的汽車,從第i 個加油站開往第i+1 個加油站需要消耗汽油cost[i]
公升。你從其中的乙個加油站出發,開始時油箱為空。
如果你可以繞環路行駛一周,則返回出發時加油站的編號,否則返回 -1。
說明:
自己的答案,基本算是暴力解法了,雙重迴圈,不過考慮實際情況大多數都break掉了,測試時間也還好,c++**如下:
c++解法一:
1class
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++解法二:
1class
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。說明 示...