当前位置:网站首页>LeetCode 871. Minimum refueling times
LeetCode 871. Minimum refueling times
2022-07-04 20:40:00 【JIeJaitt】
The car set off from the starting point to the destination , The purpose is to the east of the starting position target
Miles away .
There are gas stations along the way , Every station[i]
For a gas station , It's east of the starting point station[i][0]
Miles away , And there are station[i][1]
A litre of petrol .
Suppose the capacity of the car's fuel tank is infinite , At first there was startFuel
Liter fuel . Every time it drives 1 Miles will be used 1 A litre of petrol .
When the car arrives at the gas station , It may stop to refuel , Transfer all gasoline from the gas station to the car .
In order to reach the destination , What's the minimum number of refuels necessary for a car ? If you can't get to your destination , Then return to -1
.
Be careful : If the remaining fuel when the car arrives at the gas station is 0, It can still refuel there . If the remaining fuel is 0, Still think it has reached its destination .
Example 1:
Input :target = 1, startFuel = 1, stations = [] Output :0 explain : We can get to our destination without refueling .
Example 2:
Input :target = 100, startFuel = 1, stations = [[10,100]] Output :-1 explain : We can't get to our destination , Not even getting to the first gas station .
Example 3:
Input :target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]] Output :2 explain : We set out with 10 Liter fuel . We drove to the starting point 10 The gas station at mile , Consume 10 Liter fuel . Take the gas from 0 To add to 60 l . then , We from 10 The gas station is miles away 60 The gas station at mile ( Consume 50 Liter fuel ), And take the gas from 10 To add to 50 l . Then we drove to our destination . We are on the way 1 Two gas stations stop , So back 2 .
Tips :
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
Greedy question , It's difficult to prove , But the idea is more direct .
The specific methods are as follows .
Calculate the current position ( Gas station or destination ) The distance from the previous position , According to the distance difference, the amount of gasoline needed to drive from the previous position to the current position , Subtract the amount of gasoline used from the remaining amount of gasoline .
If the remaining gasoline quantity is less than 000, It means that you cannot drive from the previous position to the current position without refueling , We need to refuel . Take the largest element in the priority queue and add it to the remaining gasoline , And increase the refueling times 111, Repeat this operation until the remaining gasoline quantity is greater than or equal to 000 Or the priority queue becomes empty .
If the priority queue becomes empty , The remaining amount of gasoline is still less than 000, It means that you still can't reach the current position after refueling at all the passing gas stations , return −1-1−1.
If the current location is a gas station , Then add the refueling volume of the current gas station to the priority queue , And update the previous location with the current location .
class Solution {
public:
int minRefuelStops(int target, int startFuel, vector<vector<int>>& stations) {
stations.push_back({
target,0});
int res=0;
priority_queue<int> heap;
for (auto& p:stations) {
int x=p[0],y=p[1];
while(heap.size() && startFuel<x) {
startFuel += heap.top();
heap.pop();
res ++;
}
if (startFuel<x) return -1;
heap.push(y);
}
return res;
}
};
边栏推荐
- Prometheus installation
- Flet教程之 07 PopupMenuButton基础入门(教程含源码)
- FS4061A升压8.4V充电IC芯片和FS4061B升压12.6V充电IC芯片规格书datasheet
- Employment prospects and current situation of Internet of things application technology
- Understand the reading, writing and creation of files in go language
- repeat_ P1002 [NOIP2002 popularization group] cross the river pawn_ dp
- 2022 Health Exhibition, health exhibition, Beijing Great Health Exhibition and health industry exhibition were held in November
- FS8B711S14电动红酒开瓶器单片机IC方案开发专用集成IC
- Qt五子棋人机对战画棋子之QPainter的使用误区总结
- The problem of the maximum difference between the left and right maxima
猜你喜欢
Win11怎么搜索无线显示器?Win11查找无线显示器设备的方法
什么叫内卷?
科普达人丨一文看懂阿里云的秘密武器“神龙架构”
Actual combat simulation │ JWT login authentication
What are the consequences of closing the read / write channel?
YOLOv5s-ShuffleNetV2
What is involution?
C server log module
What does the neural network Internet of things mean? Popular explanation
太方便了,钉钉上就可完成代码发布审批啦!
随机推荐
凌云出海记 | 沐融科技&华为云:打造非洲金融SaaS解决方案样板
Pointnet / pointnet++ point cloud data set processing and training
Flet教程之 05 OutlinedButton基础入门(教程含源码)
So this is the BGP agreement
凌云出海记 | 文华在线&华为云:打造非洲智慧教学新方案
idea配置标准注释
go笔记(1)go语言介绍以及特点
同事的接口文档我每次看着就头大,毛病多多。。。
Is it safe for Great Wall Securities to open an account? Stock account opening process online account opening
Detailed explanation of Audi EDI invoice message
Pointnext: review pointnet through improved model training and scaling strategies++
泰山OFFICE技术讲座:关于背景(底纹和高亮)的顺序问题
PHP pseudo original API docking method
c# . Net MVC uses Baidu ueditor rich text box to upload files (pictures, videos, etc.)
Lingyun going to sea | 10 jump &huawei cloud: jointly help Africa's inclusive financial services
Huawei cloud store homepage banner resource bit application
Decryption function calculates "task state and lifecycle management" of asynchronous task capability
LeetCode 871. 最低加油次数
Application practice | Shuhai supply chain construction of data center based on Apache Doris
Redis分布式锁的实现