当前位置:网站首页>One question per day (2022-07-02) - Minimum refueling times
One question per day (2022-07-02) - Minimum refueling times
2022-07-04 19:11:00 【Fill your head with water】
List of articles
871. Minimum refueling times
Problem description :
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 .
Their thinking :
Let's not understand it as a gas station , It's not a gas station on the road , But barrels of oil , Every time I pass , Just take the oil , In order to ensure the minimum refueling times , When the oil is not enough, we take the largest barrel of oil and add , So if you run out of oil , Then it won't arrive
Simply put, it's a straight line , From start to end , Distance from starting pointstation[i][0]
Each location has a capacity ofstation[i][1]
Gasoline barrel , If you can reach the end, returnMinimum refueling times
, Otherwise return to-1
;
Answer key :
func minRefuelStops(target int, startFuel int, stations [][]int) int {
// If the oil quantity in the initial state can reach , return 0
if target <= startFuel {
return 0
}
remainOil := startFuel // The rest of the gasoline
pos := make([]int, 0) // The oil bucket on your body
visited := make(map[int]bool) // Whether the oil drum at this position has been picked up , If it has been picked up , Just ignore it , Otherwise, take it with you .
ans := 0 // Refueling times
for {
// If there is no oil
if target > remainOil {
// Traverse the oil bucket on the road , Pick up passing oil barrels
for _, distance := range stations {
// Current oil volume You can pass the oil bucket you brought also I haven't brought this oil bucket before
if remainOil >= distance[0] && visited[distance[0]] != true {
// The oil bucket with the mark on your body
visited[distance[0]] = true
pos = append(pos, distance[1])
}
}
// because When we get here signify target > remainOil
// len(pos) == 0: At this time, if there is no oil bucket to pick up on the road
// Represents the end of the journey , The destination cannot be reached .
if len(pos) == 0 {
return -1
}
sort.Ints(pos)
remainOil = remainOil + pos[len(pos)-1]
ans++
// This oil bucket has been used Just throw it away
pos = pos[:len(pos)-1]
} else {
return ans
}
}
}
Submit results :
边栏推荐
- Scala basic tutorial -- 17 -- Collection
- Li Kou brush question diary /day7/2022.6.29
- 从实时应用角度谈通信总线仲裁机制和网络流控
- Wanghongru research group of Institute of genomics, Chinese Academy of Agricultural Sciences is cordially invited to join
- 性能优化之关键渲染路径
- 【uniapp】uniapp开发app在线预览pdf文件
- 使用FTP
- 模板_判断素数_开方 / 六素数法
- Digital "new" operation and maintenance of energy industry
- Cache é JSON uses JSON adapters
猜你喜欢
随机推荐
Deleting nodes in binary search tree
神经网络物联网平台搭建(物联网平台搭建实战教程)
Caché WebSocket
Scala基础教程--17--集合
Li Kou brush question diary /day3/2022.6.25
利用策略模式优化if代码【策略模式】
TorchDrug教程
Principle and application of ThreadLocal
Li Kou brush question diary /day4/6.26
[cloud voice suggestion collection] cloud store renewal and upgrading: provide effective suggestions, win a large number of code beans, Huawei AI speaker 2!
Li Kou brush question diary /day6/6.28
模板_判断素数_开方 / 六素数法
Li Chi's work and life summary in June 2022
[2022 Jiangxi graduate mathematical modeling] curling movement idea analysis and code implementation
Torchdrug tutorial
Scala basic tutorial -- 19 -- actor
李迟2022年6月工作生活总结
2022年字节跳动日常实习面经(抖音)
【OpenCV入门到精通之九】OpenCV之视频截取、图片与视频互转
一、C语言入门基础