日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

134. Gas Station加油站

發布時間:2023/12/18 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 134. Gas Station加油站 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[抄題]:

There are?N?gas stations along a circular route, where the amount of gas at station?i?is?gas[i].

You have a car with an unlimited gas tank and it costs?cost[i]?of gas to travel from station?i?to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.

Return the starting gas station's index if you can travel around the circuit once in the clockwise direction, otherwise return -1.

Note:

  • If there exists a?solution, it is guaranteed to be unique.
  • Both input arrays are non-empty and have the same length.
  • Each element in the input arrays is a non-negative integer.

Example 1:

Input: gas = [1,2,3,4,5] cost = [3,4,5,1,2]Output: 3Explanation: Start at station 3 (index 3) and fill up with 4 unit of gas. Your tank = 0 + 4 = 4 Travel to station 4. Your tank = 4 - 1 + 5 = 8 Travel to station 0. Your tank = 8 - 2 + 1 = 7 Travel to station 1. Your tank = 7 - 3 + 2 = 6 Travel to station 2. Your tank = 6 - 4 + 3 = 5 Travel to station 3. The cost is 5. Your gas is just enough to travel back to station 3. Therefore, return 3 as the starting index.

Example 2:

Input: gas = [2,3,4] cost = [3,4,3]Output: -1Explanation: You can't start at station 0 or 1, as there is not enough gas to travel to the next station. Let's start at station 2 and fill up with 4 unit of gas. Your tank = 0 + 4 = 4 Travel to station 0. Your tank = 4 - 3 + 2 = 3 Travel to station 1. Your tank = 3 - 3 + 3 = 3 You cannot travel back to station 2, as it requires 4 unit of gas but you only have 3. Therefore, you can't travel around the circuit once no matter where you start.

?[暴力解法]:

時間分析:

空間分析:

?[優化后]:

時間分析:

空間分析:

[奇葩輸出條件]:

[奇葩corner case]:

[思維問題]:

不知道怎么表示:天啦嚕,多開幾個變量還沒學會么?

[英文數據結構或算法,為什么不用別的數據結構或算法]:

[一句話思路]:

tank就一直+=就行了,就可以不必清空?

[輸入量]:空:?正常情況:特大:特小:程序里處理到的特殊情況:異常情況(不合法不合理的輸入):

[畫圖]:

[一刷]:

[二刷]:

[三刷]:

[四刷]:

[五刷]:

? [五分鐘肉眼debug的結果]:

[總結]:

tank就一直+=就行了,就可以不必清空。不符合條件的時候才清空。

[復雜度]:Time complexity: O(n) Space complexity: O(1)

[算法思想:迭代/遞歸/分治/貪心]:

[關鍵模板化代碼]:

[其他解法]:

[Follow Up]:

[LC給出的題目變變變]:

?[代碼風格] :

?[是否頭一次寫此類driver funcion的代碼] :

?[潛臺詞] :

?

// package whatever; // don't place package name!class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {//corner caseif (gas == null || cost == null) return -1; //initializationint sumGas = 0;int sumCost = 0;int tank = 0;int start = 0;//for loop and renew the startfor (int i = 0; i < gas.length; i++) {sumGas += gas[i];sumCost += cost[i];tank += gas[i] - cost[i];//if tank < 0, renew startif (tank < 0) {start = i + 1;tank = 0;}}//if sumgas > sumcost, return start. if (sumGas >= sumCost) return start;return -1;} } /* gas = [1, 2, 3, 4, 5] cost = [3, 4, 5, 1, 2] i 0 1 2 3 4 sumgas 1 3 6 10 15 sumcost 3 7 12 13 15 tank -2 3 6*/ View Code

?

轉載于:https://www.cnblogs.com/immiao0319/p/9449748.html

總結

以上是生活随笔為你收集整理的134. Gas Station加油站的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。