当前位置:网站首页>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 :

边栏推荐
- Principle and application of ThreadLocal
- Perfect JS event delegation
- 力扣刷题日记/day6/6.28
- 神经网络物联网是什么意思通俗的解释
- [mathematical basis of machine learning] (I) linear algebra (Part 1 +)
- 使用FTP
- 力扣刷题日记/day3/2022.6.25
- Halcon模板匹配
- 输入的查询SQL语句,是如何执行的?
- [mathematical modeling of graduate students in Jiangxi Province in 2022] analysis and code implementation of haze removal by nucleation of water vapor supersaturation
猜你喜欢

Installation and use of VMware Tools and open VM tools: solve the problems of incomplete screen and unable to transfer files of virtual machines
![[release] a tool for testing WebService and database connection - dbtest v1.0](/img/4e/4154fec22035725d6c7aecd3371b05.jpg)
[release] a tool for testing WebService and database connection - dbtest v1.0

Mysql5.7 installation tutorial graphic explanation

Wanghongru research group of Institute of genomics, Chinese Academy of Agricultural Sciences is cordially invited to join

力扣刷题日记/day4/6.26

Mxnet implementation of googlenet (parallel connection network)

基于unity的愤怒的小鸟设计

Digital "new" operation and maintenance of energy industry

A method of using tree LSTM reinforcement learning for connection sequence selection

Scala基础教程--13--函数进阶
随机推荐
中国农科院基因组所汪鸿儒课题组诚邀加入
Scala基础教程--16--泛型
Interpretation of SIGMOD '22 hiengine paper
An example of multi module collaboration based on NCF
力扣刷题日记/day6/6.28
[uniapp] uniapp development app online Preview PDF file
ByteDance dev better technology salon was successfully held, and we joined hands with Huatai to share our experience in improving the efficiency of web research and development
自由小兵儿
Scala基础教程--17--集合
Li Chi's work and life summary in June 2022
整理混乱的头文件,我用include what you use
Deleting nodes in binary search tree
神经网络物联网应用技术就业前景【欢迎补充】
Build your own website (15)
Scala基础教程--15--递归
【OpenCV入门到精通之九】OpenCV之视频截取、图片与视频互转
字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验
基于C语言的菜鸟驿站管理系统
Behind the ultra clear image quality of NBA Live Broadcast: an in-depth interpretation of Alibaba cloud video cloud "narrowband HD 2.0" technology
小发猫物联网平台搭建与应用模型