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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

LeetCode:871. Minimum Number of Refueling Stops - Python

發(fā)布時間:2023/12/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode:871. Minimum Number of Refueling Stops - Python 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題描述:

871. 最低加油次數(shù)
汽車從起點出發(fā)駛向目的地,該目的地位于出發(fā)位置東面 target英里處。

沿途有加油站,每個station[i] 代表一個加油站,它位于出發(fā)位置東面 station[i][0] 英里處,并且有 station[i][1] 升汽油。

假設(shè)汽車油箱的容量是無限的,其中最初有 startFuel 升燃料。它每行駛 1 英里就會用掉 1 升汽油。

當(dāng)汽車到達加油站時,它可能停下來加油,將所有汽油從加油站轉(zhuǎn)移到汽車中。

為了到達目的地,汽車所必要的最低加油次數(shù)是多少?如果無法到達目的地,則返回-1。

注意:如果汽車到達加油站時剩余燃料為 0,它仍然可以在那里加油。如果汽車到達目的地時剩余燃料為 0,仍然認(rèn)為它已經(jīng)到達目的地。
示例 1:

輸入:target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]]
輸出:2
解釋:我們出發(fā)時有 10 升燃料。我們開車來到距起點 10 英里處的加油站,消耗 10 升燃料。將汽油從 0 升加到 60 升。然后,我們從 10 英里處的加油站開到 60 英里處的加油站(消耗 50 升燃料),并將汽油從 10 升加到 50 升。然后我們開車抵達目的地。我們沿途在1兩個加油站停靠,所以返回 2 。

提示:

  • 1 <= target, startFuel, stations[i][1] <= 10^9
  • 0 <= stations.length <= 500
  • 0 < stations[0][0] < stations[1][0] < ... < stations[stations.length-1][0] < target

問題分析:

這個題目使用動態(tài)規(guī)劃的思想,基本思路,設(shè)dp[i]表示第i次加油之后可以達到的最遠距離,很顯然,i <= 加油站的個數(shù),求出dp之后,從頭遍歷一邊,找到第一個 dp[i] >= target 的 i ,就是最少的加油次數(shù),如果沒有就返回-1。
(1)問題 dp[i] 怎么求? 首先,從頭開遍歷加油站,每當(dāng)遍歷到第i個加油站時,dp[t+1] = max(dp[t+1], dp[t] + arr[i]),其中t+1 <= i,然后依次,從后向前更新dp,可以這樣理解,dp[t] 再加一次油arr[i],得到的新的dp[t+1]是否是比之前的dp[t+1]大?如果大就更新。依次遍歷遞推,直至結(jié)束。值得思考是的,仔細(xì)觀察遞推公式:dp[t+1] = max(dp[t+1], dp[t] + arr[i])你會發(fā)現(xiàn),無論更新與否,dp[t+1] 始終代表的是第 t+1 次加油。

Python3實現(xiàn):

# @Time :2018/7/25 # @Author :Yinxing # 動態(tài)規(guī)劃 時間復(fù)雜度 O(N^2K) 空間復(fù)雜度 O(N)class Solution:def minRefuelStops(self, target, startFuel, stations):dp = [startFuel] + [0] * len(stations) # 初始化dpfor i, (loc, cap) in enumerate(stations): # 遍歷加油站for t in range(i, -1, -1):if dp[t] >= loc: # 如果 第 t 加油后,可以到達 當(dāng)前加油站的位置。dp[t+1] = max(dp[t+1], dp[t] + cap) # 嘗試的更新dpfor i, d in enumerate(dp): # 遍歷出最小次數(shù)if d >= target: return ireturn -1if __name__ == '__main__':solu = Solution()target, startFuel, stations = 100, 10, [[10, 60], [20, 30], [30, 30], [60, 40]]print(solu.minRefuelStops(target, startFuel, stations))

歡迎指正哦。

總結(jié)

以上是生活随笔為你收集整理的LeetCode:871. Minimum Number of Refueling Stops - Python的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲视频第一页 | 91视频综合| 麻豆免费视频网站 | 日本久久高清视频 | 国产91麻豆视频 | 亚洲午夜在线观看 | 宅男视频污| 九色网址| 国产精品视频www | 午夜性生活视频 | 亚洲毛片在线免费观看 | 国产91清纯白嫩初高中在线观看 | 91看片在线观看 | 日韩最新在线 | 欧美大胆a视频 | 三年电影在线观看 | 超碰97人人爱 | 狠狠爱综合 | 亚洲精品视频在线观看免费视频 | 欧美成人精品欧美一级乱黄 | 四虎黄色片 | 综合视频在线观看 | 爽妇网av| av在线播放地址 | 艹久久 | 中国av一区 | 香蕉网站在线 | 四虎精品一区 | 久久久91精品 | 国产精品麻豆一区二区 | 欧美爱爱视频 | 国产精品久久久久久久av福利 | av毛片一区| 一本一道久久a久久精品综合 | 韩国女主播一区 | 日本一本在线观看 | 91蝌蚪在线 | 日产精品一区二区 | 亚洲国产亚洲 | 国产精品-区区久久久狼 | 久久国产精品无码网站 | 亚洲丁香网 | 亚洲xx在线 | 国产三级一区二区三区 | 国产精品一区2区 | 日韩精品免费一区二区在线观看 | 99久久人妻无码中文字幕系列 | 成人特级片 | 免费看污片的网站 | 亚洲欧美精品aaaaaa片 | 精品久久久久久久久久久久久久久 | 91精品91久久久中77777老牛 | 国产农村妇女毛片精品久久麻豆 | 国产精品无码影院 | 色欲av无码一区二区三区 | 顶级黑人搡bbw搡bbbb搡 | 亚洲欧美一区二区三区在线 | 日日摸天天爽天天爽视频 | 亚洲精品久久久久久国产精华液 | 四虎在线免费观看视频 | 久久在草 | 嫩草影院av | 91网页入口 | 成人三级视频 | 欧美激情视频网站 | 亚洲av乱码久久精品蜜桃 | 色综合久久久 | 中文字幕一区二区三区免费视频 | 一区二区三区视频在线 | 欧美日韩三级 | 国产91在线亚洲 | 又黄又爽视频 | 成人黄色网址在线观看 | 欧美啪啪网 | 中文字幕av网 | 精品一区二区久久久久久按摩 | 日本黄在线| 男人和女人搞鸡 | 亚洲日本japanese丝袜 | 日韩一区二区三区精 | 黄视频在线免费 | 精彩视频一区二区三区 | 国产手机av在线 | 国产在线视频一区二区三区 | 无码人妻精品一区二区三区99日韩 | 男女操操视频 | 已满十八岁免费观看全集动漫 | 成人av电影网站 | 亚洲精品二区三区 | 成人免费大全 | 国产片一区二区 | 蜜臀久久99精品久久久久宅男 | 黄色字幕网 | 超碰资源 | 在线看黄色的网站 | 96日本xxxxxⅹxxx17 | 亚洲免费中文 | 欧美人吸奶水吃奶水 | 久久香蕉热 |