[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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 销售和程序员哪个好_适合服装店的服装销售
- 下一篇: python培训学费多少钱-python