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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【LeetCode】871. Minimum Number of Refueling Stops 解题报告(Python)

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

作者: 負雪明燭
id: fuxuemingzhu
個人博客: http://fuxuemingzhu.cn/


目錄

    • 題目描述
    • 題目大意
    • 解題方法
      • 貪心算法
    • 日期

題目地址:https://leetcode.com/problems/minimum-number-of-refueling-stops/

題目描述

A car travels from a starting position to a destination which is target miles east of the starting position.

Along the way, there are gas stations. Each station[i] represents a gas station that is station[i][0] miles east of the starting position, and has station[i][1] liters of gas.

The car starts with an infinite tank of gas, which initially has startFuel liters of fuel in it. It uses 1 liter of gas per 1 mile that it drives.

When the car reaches a gas station, it may stop and refuel, transferring all the gas from the station into the car.

What is the least number of refueling stops the car must make in order to reach its destination? If it cannot reach the destination, return -1.

Note that if the car reaches a gas station with 0 fuel left, the car can still refuel there. If the car reaches the destination with 0 fuel left, it is still considered to have arrived.

Example 1:

Input: target = 1, startFuel = 1, stations = [] Output: 0 Explanation: We can reach the target without refueling.

Example 2:

Input: target = 100, startFuel = 1, stations = [[10,100]] Output: -1 Explanation: We can't reach the target (or even the first gas station).

Example 3:

Input: target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]] Output: 2 Explanation: We start with 10 liters of fuel. We drive to position 10, expending 10 liters of fuel. We refuel from 0 liters to 60 liters of gas. Then, we drive from position 10 to position 60 (expending 50 liters of fuel), and refuel from 10 liters to 50 liters of gas. We then drive to and reach the target. We made 2 refueling stops along the way, so we return 2.

Note:

  • 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
  • 題目大意

    一個車剛開始的時候有一些油,現在在一條直線上有一些加油站,第i個加油站距離出發點的距離和儲油量是station[i][0]和station[i][1],假設汽車的油箱是無限大的,現在求從出發點出發能否到達結束點target,如果可以的話,需要經歷的最少加油站是多少。

    解題方法

    貪心算法

    這個題是我遇到的騰訊面試題和2019年百度筆試題。

    這個題的直觀思路是當油箱剩的有油的時候,不能遇到加油站就去加油,因為可能在油用完之前遇到另一個存油量很多的加油站。所以在這個思路下,如何解呢?

    這個題的方法是,我們使用一個大根堆保存所有經歷過的加油站的存量,也就相當于把油放到后備箱里(注意不是油箱)。當我們無法到達某個加油站的時候,就是在半路熄火了,此時應該從后備箱中拿出最大的那個油桶進行加油,如果仍然不夠到達加油站,則繼續把后備箱的油拿出來加上。

    所以,如果把后備箱的油全部都拿出來用完了仍然不能到達加油站的情況下,則返回-1.否則,由于是個貪心策略,所以使用了最少的加油站的油。

    代碼的思路是,使用一個大根堆保存經歷過的加油站的油量,即放到了后備箱里。使用prev保存上一個加油站的位置,對所有的加油站進行遍歷,判斷從上一個加油站到當前加油站需要用掉多少油,如果油箱不夠用了則貪心使用后備箱中最大的油桶。當后備箱的油全部用完了,仍然不能到達現在的加油站,則返回-1。

    注意,python的heapq默認是小根堆,如果想用大根堆,需要在放入數字的時候添加負號。

    Python代碼如下:

    class Solution(object):def minRefuelStops(self, target, startFuel, stations):""":type target: int:type startFuel: int:type stations: List[List[int]]:rtype: int"""# [pos, fuel]stations.append([target, float("inf")])# -fuelque = []pos = 0tank = startFuelres = 0prev = 0for p, g in stations:tank -= p - prevwhile que and tank < 0:tank += -heapq.heappop(que)res += 1if tank < 0:return -1heapq.heappush(que, -g)prev = preturn res

    參考資料:https://leetcode.com/problems/minimum-number-of-refueling-stops/solution/

    日期

    2019 年 4 月 3 日 —— 好久不刷題了,越來越手生

    總結

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

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

    主站蜘蛛池模板: 亚洲午夜精品一区 | 污污小说在线观看 | 久青草影视 | 久热青草 | 精品九九久久 | 午夜精品一区二区三 | 日本女人黄色 | 欧美性网站 | 国产少女免费观看高清 | 久久精品1 | 一级特黄录像免费看 | 日本三级吃奶头添泬 | 中文字幕一本 | 日韩一区二区三区在线观看 | 五月的婷婷 | 伊人蕉 | 亚洲精品理论片 | 在线观看黄色的网站 | 蜜臀久久99精品久久一区二区 | 国产精品野外户外 | 国产精品男女 | 日本变态折磨凌虐bdsm在线 | 精品国产一区二区三 | 欧美456| 成人自拍av | 明星双性精跪趴灌满h | 欧美大片在线观看 | 国产蜜臀在线 | 男女男网站 | 91精品在线观看入口 | 久久精国产 | 在线久 | 午夜剧场91| 黑人操日本女人视频 | 国产正在播放 | 日本在线播放视频 | 天堂成人在线观看 | 色屁屁一区二区三区视频 | 男人靠女人免费视频网站 | 亚洲色图校园春色 | 麻豆av在线免费观看 | 亚洲操操操 | 久久久亚洲欧美 | 在线看av的网址 | 97视频在线观看免费高清完整版在线观看 | 四房婷婷| 韩日一级片 | www男人的天堂 | 久久精品日 | 波多野结衣91 | 国产最新在线 | 无码人妻精品一区二区蜜桃色欲 | 欧美www| 伊人网视频 | 日韩精品首页 | 亚洲电影一区二区三区 | 欧美熟妇交换久久久久久分类 | 黄色的网站在线 | av中文字幕一区二区三区 | 伦理欧美| 啪啪导航| 蜜桃在线一区 | 日韩精品在线观看视频 | 台湾少妇xxxx做受 | 天堂av中文在线观看 | 色噜噜狠狠狠综合曰曰曰 | 黄网站免费在线观看 | 尤物在线视频观看 | 老外毛片 | jizz日本视频 | 免费无码毛片一区二区app | 99操 | 人妻无码中文字幕 | 日日干影院 | 超薄肉色丝袜一二三 | 91视频三区 | 日日操网 | 国内精品小视频 | 国产精品日本一区二区在线播放 | 激情播播网 | 在线观看免费黄视频 | 国产人妻精品一区二区三区 | 天堂在线中文在线 | 香蕉视频黄版 | 四虎影院一区 | 国产精品成人aaaaa网站 | 在线黄av | 亚洲欧美日韩国产一区二区三区 | 国产高清自拍av | 秋霞网一区二区 | 欧美夜夜爽 | 黄色免费在线网址 | 少妇又紧又深又湿又爽视频 | 久久黄色小视频 | 久久久久亚洲av无码专区桃色 | 一本色综合 | 中文乱码人妻一区二区三区视频 | 日本福利视频一区 | 亚洲av无码国产精品久久不卡 |