当前位置:网站首页>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 -- 13 -- advanced function
- Rookie post station management system based on C language
- MXNet对GoogLeNet的实现(并行连结网络)
- Scala basic tutorial -- 17 -- Collection
- How to download files using WGet and curl
- 基于lex和yacc的词法分析器+语法分析器
- 建立自己的网站(15)
- [mathematical modeling of graduate students in Jiangxi Province in 2022] analysis and code implementation of haze removal by nucleation of water vapor supersaturation
- Halcon template matching
- Installation and use of VMware Tools and open VM tools: solve the problems of incomplete screen and unable to transfer files of virtual machines
猜你喜欢
How to modify icons in VBS or VBE
ThreadLocal原理与使用
[release] a tool for testing WebService and database connection - dbtest v1.0
What if the self incrementing ID of online MySQL is exhausted?
vbs或vbe如何修改图标
【2022年江西省研究生数学建模】冰壶运动 思路分析及代码实现
基于lex和yacc的词法分析器+语法分析器
【2022年江西省研究生数学建模】水汽过饱和的核化除霾 思路分析及代码实现
Nature microbiology | viral genomes in six deep-sea sediments that can infect Archaea asgardii
What types of Thawte wildcard SSL certificates provide
随机推荐
Angry bird design based on unity
力扣刷题日记/day8/7.1
Scala基础教程--12--读写数据
From automation to digital twins, what can Tupo do?
IBM WebSphere MQ检索邮件
基于lex和yacc的词法分析器+语法分析器
Li Kou brush question diary /day8/7.1
Is the securities account opened by qiniu safe?
Send and receive IBM WebSphere MQ messages
字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验
千万不要只学 Oracle、MySQL!
奥迪AUDI EDI INVOIC发票报文详解
repeat_P1002 [NOIP2002 普及组] 过河卒_dp
2022年字节跳动日常实习面经(抖音)
File processing examples of fopen, FREAD, fwrite, fseek
学习路之PHP--phpstudy创建项目时“hosts文件不存在或被阻止打开”
自由小兵儿
Caché WebSocket
Lex and yacc based lexical analyzer + parser
力扣刷题日记/day4/6.26