[LeetCode] 871. Minimum Number of Refueling Stops @ python
生活随笔
收集整理的這篇文章主要介紹了
[LeetCode] 871. Minimum Number of Refueling Stops @ python
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.題目:
初始油量startFuel,給一個到達目的地所需的油量target,還有沿途的加油站stations(包括到達加油站所需油量以及儲備的油量),求達到目的地所需的最少加油次數,如果到不了返回-1.
二.解題思路:
首先看到最少加油次數,我們會想到從動態規劃上解題.這里設dp[i]表示第i次加油之后可以達到的最遠距離.每次遍歷到第n個加油站時,我們都需要更新dp[1]-dp[n]之間的所有值.
代碼如下:
其實還有一種更為巧妙的方法,也就是基于貪心的思想.我們記錄當前的油量cur,同時把沿途的加油站記錄下來放到堆中,知道找到油量不能支持的那個加油站停止,然后在堆中找一個油量最多的加油站,更新當前的油量同時加油次數+1,如果發現堆中沒有元素了也就是說明即使我們把沿途的所有加油站的油都算上了,也到不了下一個加油站了.
代碼如下:
總結
以上是生活随笔為你收集整理的[LeetCode] 871. Minimum Number of Refueling Stops @ python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 销售和程序员哪个好_适合服装店的服装销售
- 下一篇: 企业5S管理清扫阶段存在的问题的解决办法