当前位置:网站首页>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 :
边栏推荐
- [release] a tool for testing WebService and database connection - dbtest v1.0
- 【2022年江西省研究生数学建模】水汽过饱和的核化除霾 思路分析及代码实现
- What types of Thawte wildcard SSL certificates provide
- Other InterSystems%net tools
- Technology sharing | interface testing value and system
- Li Kou brush question diary /day5/2022.6.27
- Scala basic tutorial -- 18 -- set (2)
- 正则替换【JS,正则表达式】
- 其他InterSystems %Net工具
- 一种将Tree-LSTM的强化学习用于连接顺序选择的方法
猜你喜欢
Nebula Importer 数据导入实践
Wireshark抓包TLS协议栏显示版本不一致问题
[2022 Jiangxi graduate mathematical modeling] curling movement idea analysis and code implementation
力扣刷题日记/day1/2022.6.23
Crawler (6) - Web page data parsing (2) | the use of beautifulsoup4 in Crawlers
Wanghongru research group of Institute of genomics, Chinese Academy of Agricultural Sciences is cordially invited to join
[release] a tool for testing WebService and database connection - dbtest v1.0
英特尔集成光电研究最新进展推动共封装光学和光互连技术进步
vbs或vbe如何修改图标
MXNet对GoogLeNet的实现(并行连结网络)
随机推荐
【2022年江西省研究生数学建模】水汽过饱和的核化除霾 思路分析及代码实现
Scala基础教程--15--递归
IBM WebSphere MQ retrieving messages
[release] a tool for testing WebService and database connection - dbtest v1.0
Scala basic tutorial -- 19 -- actor
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
力扣刷题日记/day5/2022.6.27
Installation and use of VMware Tools and open VM tools: solve the problems of incomplete screen and unable to transfer files of virtual machines
删除字符串中出现次数最少的字符【JS,Map排序,正则】
Torchdrug tutorial
Mysql5.7 installation tutorial graphic explanation
物联网应用技术的就业前景和现状
其他InterSystems %Net工具
一、C语言入门基础
What if the self incrementing ID of online MySQL is exhausted?
利用策略模式优化if代码【策略模式】
How is the entered query SQL statement executed?
Deleting nodes in binary search tree
NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读
Technology sharing | interface testing value and system