当前位置: 首页 > news >正文

【反悔堆】【hard】力扣871. 最低加油次数

汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。

沿途有加油站,用数组 stations 表示。其中 stations[i] = [positioni, fueli] 表示第 i 个加油站位于出发位置东面 positioni 英里处,并且有 fueli 升汽油。

假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃料。它每行驶 1 英里就会用掉 1 升汽油。当汽车到达加油站时,它可能停下来加油,将所有汽油从加油站转移到汽车中。

为了到达目的地,汽车所必要的最低加油次数是多少?如果无法到达目的地,则返回 -1 。

注意:如果汽车到达加油站时剩余燃料为 0,它仍然可以在那里加油。如果汽车到达目的地时剩余燃料为 0,仍然认为它已经到达目的地。

地,则返回 -1 。

注意:如果汽车到达加油站时剩余燃料为 0,它仍然可以在那里加油。如果汽车到达目的地时剩余燃料为 0,仍然认为它已经到达目的地。

示例 1:
输入:target = 1, startFuel = 1, stations = []
输出:0
解释:可以在不加油的情况下到达目的地。

示例 2:
输入:target = 100, startFuel = 1, stations = [[10,100]]
输出:-1
解释:无法抵达目的地,甚至无法到达第一个加油站。

示例 3:
输入:target = 100, startFuel = 10, stations = [[10,60],[20,30],[30,30],[60,40]]
输出:2
解释:
出发时有 10 升燃料。
开车来到距起点 10 英里处的加油站,消耗 10 升燃料。将汽油从 0 升加到 60 升。
然后,从 10 英里处的加油站开到 60 英里处的加油站(消耗 50 升燃料),
并将汽油从 10 升加到 50 升。然后开车抵达目的地。
沿途在两个加油站停靠,所以返回 2 。

在这里插入图片描述

反悔堆

class Solution {
public:int minRefuelStops(int target, int startFuel, vector<vector<int>>& stations) {int ans = 0;priority_queue<int> q;int n = stations.size();int prev = 0, fuel = startFuel;for(int i = 0; i <= n; i++){int curr = i < n ? stations[i][0] : target;fuel -= curr - prev;while(fuel < 0 && !q.empty()){fuel += q.top();q.pop();ans++;}if(fuel < 0){return -1;}if(i < n){q.emplace(stations[i][1]);prev = curr;}}return ans;}
};

我们需要经过n+1个地方,分别是n个加油站和终点。
我们遍历每个经过的加油站以及终点,我们用curr和prev来记录相邻两个地方之间的距离,如果油够经过这段距离,我们就不用进行操作,只要将当前加油站油的数量加入到优先队列q中即可。如果油不够经过这段距离,那么我们就需要在之前的加油站进行加油,我们优先在有最多油的加油站加油,也就是q.top(),并且记录ans,直到油够经过这段距离位置。如果q已经空了,但是油还是不够用,那么就返回-1。

相关文章:

【反悔堆】【hard】力扣871. 最低加油次数

汽车从起点出发驶向目的地&#xff0c;该目的地位于出发位置东面 target 英里处。 沿途有加油站&#xff0c;用数组 stations 表示。其中 stations[i] [positioni, fueli] 表示第 i 个加油站位于出发位置东面 positioni 英里处&#xff0c;并且有 fueli 升汽油。 假设汽车油…...

electron typescript运行并设置eslint检测

目录 一、初始化package.json 二、安装依赖 1、安装electron 2、安装typescript依赖 3、安装eslint 三、项目结构 四、配置启动项 一、初始化package.json 我的&#xff1a;这里的"main"没太大影响&#xff0c;看后面的步骤。 {"name": "xlo…...

服务器上安装Nginx详细步骤

第一步&#xff1a;上传nginx压缩包到指定目录。 第二步&#xff1a;解压nginx压缩包。 第三步&#xff1a;配置编译nginx 配置编译方法&#xff1a; ./configure 配置编译后结果信息&#xff1a; 第四步&#xff1a;编译nginx 在nginx源文件目录中直接运行make命令 第五步&…...

Timeout or no response waiting for NATS JetStream server

当使用jetStream 出现"Timeout or no response waiting for NATS JetStream server" 错误的时候要注意后面的“no response”&#xff0c;尤其是开发测试&#xff0c;要去check server 是否启动了 jet stream。 [20112] 2025/01/24 08:27:42.738396 [INF] _ ___…...

5.2 软件需求分析

文章目录 需求分析的意义软件需求的组成需求分析的5个方面需求分析方法 需求分析的意义 需求分析解决软件“做什么”的问题。由于开发人员比较熟悉计算机而不熟悉领域业务&#xff0c;用户比较熟悉领域业务而不熟悉计算机&#xff0c;双方需要通过交流&#xff0c;制定出完整、…...

DF 开发1

https://www.bilibili.com/video/BV1RFChYxEhJ/ 多个 workspace 图片上传 S3 上传大量文档 https://www.bilibili.com/video/BV1ySsEeUE6i 解决方案 返回 metadata https://www.bilibili.com/video/BV1t3e5eaENo 给出内容引用出处 模型负载均衡 可以以 ollama 在不同端口起服…...

【现代深度学习技术】深度学习计算 | 参数管理

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

团体程序设计天梯赛-练习集——L1-024 后天

前言 首先祝大家新年快乐&#xff0c;然后博主今点炮让炮崩了一下&#xff0c;水一天 这道题5分非常简单&#xff0c;有不少的做法 L1-024 后天 如果今天是星期三&#xff0c;后天就是星期五&#xff1b;如果今天是星期六&#xff0c;后天就是星期一。我们用数字1到7对应星期…...

JVM栈溢出线上环境排查

#查看当前Linux系统进程ID、线程ID、CPU占用率&#xff08;-eo后面跟想要展示的列&#xff09; ps H -eo pid,tid,%cpups H -eo pid,tid,%cpu |grep tid #使用java jstack 查看进程id下所有线程id的情况 jstack pid 案例2 通过jstack 排查死锁问题 #启动java代码 jstack 进…...

Java实现FIFO缓存策略实战

实现FIFO模型选择FIFO模型实现过程FIFO模型完整代码下面看一下先进先出的示例过程总结FIFO(First In First Out,先进先出)策略是一种基本的数据处理和存储管理方法,在Java中,这种策略通常用于管理那些需要按照顺序处理的数据项,比如任务的队列、数据的传输缓冲区等。在Ja…...

set集合

set集合 Set系列集合&#xff1a; 无序&#xff1a;存取顺序不一致 不重复&#xff1a;可以去除重复 无索引&#xff1a;没有带索引的方法&#xff0c;所以不能使用普通for循环遍历&#xff0c;也不能通过索引来获取元素 可以看出set是无序的存和打印的顺序不一样 Set接中的…...

【数据结构】 并查集 + 路径压缩与按秩合并 python

目录 前言模板朴素实现路径压缩按秩合并按树高为秩按节点数为秩 总结 前言 并查集的基本实现通常使用森林来表示不同的集合&#xff0c;每个集合用一棵树表示&#xff0c;树的每个节点有一个指向其父节点的指针。 如果一个节点是它自己的父节点&#xff0c;那么它就是该集合的代…...

无耳科技 Solon v3.0.7 发布(2025农历新年版)

Solon 框架&#xff01; Solon 框架由杭州无耳科技有限公司&#xff08;下属 Noear 团队&#xff09;开发并开源。是新一代&#xff0c;面向全场景的 Java 企业级应用开发框架。从零开始构建&#xff08;非 java-ee 架构&#xff09;&#xff0c;有灵活的接口规范与开放生态。…...

UART、I2C和SPI对比

UARTSPII2C英文Universal Asynchronous Receive/TransmitSerial Peripheral InterfaceInner Integrated Communication通讯速度115200、38400 bit/s高达100M bit/s 100k、400k、1M、3.4M bit/s时钟同/异步性时钟异步时钟同步时钟同步接线方式3线(Rx、Tx、GND) 4线(MISO、…...

Vue 响应式渲染 - 待办事项简单实现

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue 响应式渲染 - 待办事项简单实现 目录 待办事项简单实现 页面初始化 双向绑定的指令 增加留言列表设置 增加删除按钮 最后优化 总结 待办事项简单实现 页面初始化 对页面进行vue的引入、创建输入框和按钮及实例化V…...

ResNeSt: Split-Attention Networks论文学习笔记

这张图展示了一个名为“Split-Attention”的神经网络结构&#xff0c;该结构在一个基数组&#xff08;cardinal group&#xff09;内进行操作。基数组通常指的是在神经网络中处理的一组特征或通道。图中展示了如何通过一系列操作来实现对输入特征的注意力机制。 以下是图中各部…...

澳洲硕士毕业论文写作中如何把握主题

每到毕业季时&#xff0c;澳洲硕士毕业论文写作是留学生学业的头等大事。但是经常有留学生在澳洲毕业论文写作过程中会遇到写了一半&#xff0c;但是不知道应该如何继续下去的问题。有时候是在literature review的部分就越写越觉得偏离了方向&#xff0c;有时候是在数据收集阶段…...

STM32 LED呼吸灯

接线图&#xff1a; 这里将正极接到PA0引脚上&#xff0c;负极接到GND&#xff0c;这样就高电平点亮LED&#xff0c;低电平熄灭。 占空比越大&#xff0c;LED越亮&#xff0c;占空比越小&#xff0c;LED越暗 PWM初始化配置 输出比较函数介绍&#xff1a; 用这四个函数配置输…...

Java数据库操作指南:快速上手JDBC【学术会议-2025年数字化教育与信息技术(DEIT 2025】

大会官网&#xff1a;www.ic-deit.org 前言 在现代企业应用中&#xff0c;数据库是数据存储和管理的重要组成部分。Java作为一种广泛使用的编程语言&#xff0c;提供了多种方式与数据库进行交互。本文将介绍 JDBC&#xff08;Java Database Connectivity&#xff09;&#x…...

2024年个人总结

序 照例&#xff0c;每年都有的个人年度总结来了&#xff0c;看了很多其他大佬的总结&#xff0c;感觉自己的2024过于单薄&#xff0c;故事也不太丰满&#xff0c;自己就回去比较&#xff0c;自己哪里做的不好 &#xff1f;但后来发现已经进入了一个思维误区。 年度总结年度总结…...

Android Studio中文插件:3分钟极速汉化,告别英文开发障碍

Android Studio中文插件&#xff1a;3分钟极速汉化&#xff0c;告别英文开发障碍 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack …...

迷宫问题求解:从递归到队列的算法实战与性能对比

1. 迷宫问题与三种经典解法 迷宫问题就像我们小时候玩的走迷宫游戏&#xff0c;需要在错综复杂的路径中找到一条从起点到终点的通路。在计算机科学中&#xff0c;迷宫被抽象成一个二维矩阵&#xff0c;其中0代表可通行的路径&#xff0c;1代表障碍物。这个问题看似简单&#xf…...

nRF52与RFX2401C的PA+LNA优化方案:基于SoftDevice的高效驱动实现

1. 为什么需要PA和LNA优化方案 如果你正在用nRF52开发BLE设备&#xff0c;可能会遇到这样的困扰&#xff1a;明明参数配置没问题&#xff0c;但通信距离就是达不到预期。这时候就该请出我们今天的主角——RFX2401C这颗PA/LNA芯片了。我去年做智能牧场项⽬时就踩过这个坑&#…...

ROS实战:5分钟搞定大华网络摄像机RTSP流接入(Ubuntu18.04+Melodic版)

ROS实战&#xff1a;5分钟搞定大华网络摄像机RTSP流接入&#xff08;Ubuntu18.04Melodic版&#xff09; 在智能机器人开发领域&#xff0c;实时视频流处理是构建环境感知系统的核心能力之一。大华作为安防行业领先品牌&#xff0c;其网络摄像机被广泛应用于工业检测、智能巡检等…...

专业数据恢复工具对决:UFS Explorer与R-Studio的实战选型指南

1. 数据恢复工具的核心价值与选型逻辑 当硬盘突然罢工或重要文件被误删时&#xff0c;专业数据恢复软件就像数字世界的急救医生。我经历过太多凌晨三点被叫醒处理服务器崩溃的案例&#xff0c;选对工具往往能决定数据"复活"的成功率。UFS Explorer和R-Studio这对老对…...

intv_ai_mk11效果对比:同一Prompt下intv_ai_mk11与Qwen2.5在代码生成任务表现

intv_ai_mk11效果对比&#xff1a;同一Prompt下intv_ai_mk11与Qwen2.5在代码生成任务表现 1. 测试背景与目的 在当今AI技术快速发展的背景下&#xff0c;代码生成已成为大语言模型的重要应用场景之一。本次测试旨在对比intv_ai_mk11与Qwen2.5两款模型在相同Prompt下的代码生成…...

突破B站缓存限制:m4s-converter视频格式转换完全指南

突破B站缓存限制&#xff1a;m4s-converter视频格式转换完全指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 当旅行途中想离线观看缓存视频却…...

任天堂Switch大气层系统终极指南:7步完成自定义固件安装与虚拟系统配置

任天堂Switch大气层系统终极指南&#xff1a;7步完成自定义固件安装与虚拟系统配置 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统&#xff08;Atmosphere&#xff09;是任天堂…...

PyTorch 2.8镜像实际项目:电商短视频自动生成平台从0到1部署纪实

PyTorch 2.8镜像实际项目&#xff1a;电商短视频自动生成平台从0到1部署纪实 1. 项目背景与需求分析 电商行业正面临内容生产的巨大挑战。每天需要制作大量商品展示视频&#xff0c;传统方式需要专业团队拍摄剪辑&#xff0c;成本高、周期长、效率低。我们团队决定基于PyTorc…...

从CPU到内存:用74LS74芯片手把手教你搭建一个D边沿触发器(附波形图分析)

从面包板到示波器&#xff1a;用74LS74芯片实战D边沿触发器的完整指南 当你第一次在数字电路课本上看到"D边沿触发器"这个词时&#xff0c;是否感觉它像是一个抽象的黑盒子&#xff1f;教科书上的真值表和波形图虽然精确&#xff0c;但总缺少那么一点"触手可及&…...