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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode刷题:871. Minimum Number of Refueling Stops

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode刷题:871. Minimum Number of Refueling Stops 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LeetCode刷題:871. Minimum Number of Refueling Stops

原題鏈接: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

汽車從起點出發駛向目的地,該目的地位于出發位置東面 target 英里處。

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

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

當汽車到達加油站時,它可能停下來加油,將所有汽油從加油站轉移到汽車中。

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

注意:如果汽車到達加油站時剩余燃料為 0,它仍然可以在那里加油。如果汽車到達目的地時剩余燃料為 0,仍然認為它已經到達目的地。

?

示例 1:

輸入:target = 1, startFuel = 1, stations = []
輸出:0
解釋:我們可以在不加油的情況下到達目的地。
示例 2:

輸入:target = 100, startFuel = 1, stations = [[10,100]]
輸出:-1
解釋:我們無法抵達目的地,甚至無法到達第一個加油站。
示例 3:

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


算法設計

package com.bean.algorithm.basic;public class LeetCode871 {/** 動態規劃算法* dp[i][j]代表在station[i]剩余汽油量為j* 我們把起點0作為第一個加油站 * 這時,dp[0][0]=startFuel* 初始化 dp[i][j]=-1, 表示我們使用j油量時不能達到station[i].* 狀態方程為* remain=dp[i][j]+station[i][0]-station[i+1][0]* 如果 remain>0, 有兩種情況:* 無燃油時, dp[i+1][j]=max(dp[i+1][j], remain)* 有燃油時, dp[i+1][j+1]=max(dp[i+1][j+1], remain+station[i+1][1])* 針對每一對(i,j),檢查條件 dp[i][j]+station[i][0]>=target, * 然后返回滿足條件的最小的j值.* * */public int minRefuelStops(int target, int startFuel, int[][] stations) {int ret = 10000;int N = stations.length;int dp[][] = new int[N + 1][N + 1];for (int i = 0; i < N + 1; i++) {for (int j = 0; j < N + 1; j++) {dp[i][j] = -1;}}//初始設定從0號開始,油量為0。dp[0][0] = startFuel;for (int i = 0; i < N + 1; i++) {for (int j = 0; j < N + 1; j++) {if (dp[i][j] + (i >= 1 ? stations[i - 1][0] : 0) - target >= 0) {ret = Math.min(ret, j);}if (i < N) {int remain = dp[i][j] + (i >= 1 ? stations[i - 1][0] : 0) - stations[i][0];if (remain >= 0) {dp[i + 1][j] = Math.max(dp[i + 1][j], remain);dp[i + 1][j + 1] = Math.max(dp[i + 1][j + 1], remain + stations[i][1]);}}}}return ret >= 10000 ? -1 : ret;}public static void main(String[] args) {// TODO Auto-generated method stub/** Input: target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]]* Output: 2* 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.* */int target = 100;int startFuel = 10;int[][] stations =new int[][] {{10,60},{20,30},{30,30},{60,40}};LeetCode871 leetcode871=new LeetCode871();int result = leetcode871.minRefuelStops(target, startFuel, stations);System.out.println("result = "+result);}}

程序運行結果:

result = 2

總結

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

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

主站蜘蛛池模板: 很色的网站 | 裸体黄色片| 韩国av永久免费 | 久久久婷 | 亚洲精品va | 中文字幕一区电影 | 最近的中文字幕 | 无码人妻久久一区二区三区蜜桃 | 免费日本黄色片 | 青青草欧美| 欧美另类视频在线观看 | 色婷视频 | 日本中文不卡 | 日韩电影一区二区三区四区 | 欧美 日韩 成人 | 欧美激情 国产精品 | 亚洲人交配视频 | 午夜影院入口 | 日韩免费观看一区二区三区 | 亚洲成人黄色网址 | 日韩人妻一区二区三区 | 假日游船| 国产黄色美女视频 | av中文字幕av | 精品久久久在线观看 | 国产麻豆一区二区三区 | 黄片毛片av | 性欧美在线 | 网站毛片 | 女人张开腿让男人桶爽 | 日韩电影在线观看中文字幕 | 亚洲一区二区网站 | 3d动漫啪啪精品一区二区中文字幕 | 亚洲精品一卡 | 性猛交富婆╳xxx乱大交天津 | 四虎永久在线精品免费一区二区 | 初尝黑人巨炮波多野结衣 | 白嫩日本少妇做爰 | 午夜激情导航 | 看av网站 | 蜜臀av一区二区三区激情综合 | 中文天堂在线观看 | 亚洲福利视频一区二区 | 一区二区三区少妇 | 天堂a视频| 91av综合 | 激情麻豆| 亚洲第一成人在线 | 夜夜高潮夜夜爽国产伦精品 | 91视频福利 | 日本高清视频网站 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | a级特黄视频| 日韩伦理一区二区三区 | 欧美一级在线看 | 91不卡视频 | 国产色在线观看 | 亚洲一区二区三区四区五区午夜 | 国内偷拍一区二区 | 天天鲁 | 精品伊人 | 天天插天天摸 | 伊人精品 | 国产激情无套内精对白视频 | 美国一区二区 | 大牛影视剧免费播放在线 | a级在线观看网站 | 91资源在线播放 | 传媒一区二区 | www国产91| av日韩国产 | 亚洲影院一区二区三区 | 欧美xxxx18 | 国产精品人妻一区二区三区 | 国产免费一区二区三区在线观看 | 国产精品麻豆视频 | 毛片免费在线观看视频 | 狠狠cao日日穞夜夜穞av | 国产美女在线观看 | 欧美大片免费观看网址 | 99精品欧美一区二区三区 | 91嫩草入口 | 熟女俱乐部五十路六十路av | 椎名由奈av一区二区三区 | 超碰888| 天堂а在线中文在线新版 | 精品福利电影 | 最近最好的2019中文 | 在线播放视频高清在线观看 | 欧美日韩国产一区二区 | 91精品国产高清91久久久久久 | 天天干天天操天天爽 | 免费视频99 | 日本美女一级视频 | 四虎久久久久 | 精品人妻无码专区在线 | 激情四射av | 国产第一页在线观看 | 黄片毛片视频 |