每日一题|871. 最低加油次数|动态规划、内层逆序遍历

题目分析:找到第一个能够实现当前油量能够行驶的最大距离大于等于目标距离,且加油次数最小的加油站和加油次数。

每次加油之后能够行驶的最大距离都是由上一次加油的距离决定的,因此使用dp。

1、dp数组定义

dp[i]是一个一维数组,表示加油i次后,能够行驶的最大距离。

2、dp数组递推

更新的目的:找到当前加油次数能够行驶的最大距离。

当遍历到加油站 stations[i] 时,假设在到达该加油站之前已经加油 j 次,其中 0≤j≤i,则只有当 dp[j]≥stations[i][0] 时才能在加油 j 次的情况下到达加油站 stations[i] 的位置,这是dp更新的条件。 

在加油站stations[i] 加油之后,共加油 j+1 次,可以行驶的英里数是 dp[j]+stations[i][1]。遍历满足 0≤j≤i 且 dp[j]≥stations[i][0] 的每个下标 j,计算 dp[j+1] 的最大值。

dp[j + 1] = max(dp[j + 1], dp[j] + feul)

3、dp初始化

dp的最大长度表示最多加油的次数,也就是len(stations)。

dp是一个不断取最大值的过程,所有值初始化为0。

dp[0] = startFeul。

4、dp遍历顺序

外层i从小到大遍历全部的加油站,内层j从大到小遍历全部满足条件的加油次数,并更新dp。

为什么是从大到小遍历?

因为当前的dp都是以station[i]作为最后一站得到的,如果从小到大更新dp,将会重复计算feul的数量,得到一个当前i位置可以加油量的累计和,显然dp会越变越大。得到一个错误的结果。

class Solution:def minRefuelStops(self, target: int, startFuel: int, stations: List[List[int]]) -> int:dp = [startFuel] + [0] * len(stations)for i, (pos, fuel) in enumerate(stations):for j in range(i, -1, -1):if dp[j] >= pos:dp[j+1] = max(dp[j+1], dp[j] + fuel)for i, dist in enumerate(dp):if dist >= target:return ireturn -1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557131.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

毕业设计项目 深度学习安全帽佩戴检测(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…

keras yolo8目标检测

是从coco数据集提取其中的veh_ids[3,6,8,10] labels[car,bus,truck,traffic light]来做目标检测,分别表示汽车,公交车,卡车,交通灯,用的backbone keras_cv.models.YOLOV8Backbone.from_preset( "yolo_v8_m_backbone_coco" ),不用预训练…

JVM 内存区域 堆

堆是JVM中相当核心的内容,因为堆是JVM中管理的最大一块内存区域,大部分的GC也发生在堆区,那接下来就让深入地探究一下JVM中的堆结构。 需要明确,一个JVM实例只存在一个堆内存,堆区在JVM启动的时候就被创建&#xff0c…

(贪心) 反悔贪心之反悔堆

文章目录 ⭐例题🚩题意与思路 ⭐返回贪心🚩原理(反悔池)🚩落实到题🚩AC code ⭐练习题⭐END🌟交流方式 ⭐例题 经典例题: 871. 最低加油次数 🚩题意与思路 题意&#xf…

MATLAB与R语言在建模中的合作与应用(下篇)

目录 目录 模型训练的协同使用 1. 使用 R 语言进行统计建模 2. 使用 MATLAB 进行机器学习建模 模型评估与调优 1. 在 R 中评估模型性能 2. 在 MATLAB 中进行模型优化 实战示例:MATLAB 与 R 的协同建模 总结 在上篇文章中,我们介绍了 MATLAB 和 R…

2024兴国专转本长期集训产品发布!

9月13日,兴国教育2024长期集训产品发布会在江苏南京顺利召开。 成立于2002年的兴国品牌,时至今日,已经走过了二十二年。兴国新媒体发言人祁老师在发布会上,为大家介绍了兴国这二十年来的变化。 截至2024年8月,兴国在全…

论文阅读:Split-Aperture 2-in-1 Computational Cameras (二)

Split-Aperture 2-in-1 Computational Cameras (一) Coded Optics for High Dynamic Range Imaging 接下来,文章介绍了二合一相机在几种场景下的应用,首先是高动态范围成像,现有的快照高动态范围(HDR)成像工作已经证…

ctf.bugku - 本地管理员

题目来源:本地管理员 - Bugku CTF 访问页面 页面的最后返回一个字符串; 结尾 应该是base64 编码; 解码得到 test123 同时,提示信息还有 IP禁止访问,本地管理员登陆; 所以,请求头添加&#x…

【AI知识点】残差网络(ResNet,Residual Networks)

残差网络(ResNet,Residual Networks) 是由微软研究院的何凯明等人在 2015 年提出的一种深度神经网络架构,在深度学习领域取得了巨大的成功。它通过引入残差连接(Residual Connection) 解决了深层神经网络中…

基于图像的3D动物重建与生成

一、背景与目标 3D-Fauna 是一款用于基于图像和视频进行四足动物3D重建与生成的开源方案。自然界展示了复杂的相似性与多样性,该方法通过学习来自网上图片的四足动物的3D形态,能够从单张图片生成可动画化的带有纹理的3D网格模型。其最终目标是通过大量扩展现有的解决方案,实…

【网络篇】计算机网络——运输层详述(笔记)

目录 一、运输层 1. 概述 2. 运输层和网络层的关系 3. 运输层协议概述 二、多路复用和多路分解 1. 综述 2. 无连接的多路复用与多路分解(UDP) 3. 面向连接的多路复用与多路分解(TCP) 4. Web 服务器与TCP 三、UDP&#x…

Django学习笔记十三:优秀案例学习

Django CMS 是一个基于 Django 框架的开源内容管理系统,它允许开发者轻松地创建和管理网站内容。Django CMS 提供了一个易于使用的界面来实现动态网站的快速开发,并且具有丰富的内容管理功能和多种插件扩展。以下是 Django CMS 的一些核心特性和如何开始…

力扣之1336.每次访问的交易次数

题目: sql建表语句: Create table If Not Exists Visits (user_id int, visit_date date); Create table If Not Exists Transactions (user_id int, transaction_date date, amount int); Truncate table Visits; insert into Visits (user_id,…

Unity3d使用JsonUtility.FromJson读取json文件

使用JsonUtility.FromJson方法不需要额外引用第三方库。该方法只能读取json对象,而不能读取json数组。 假如我们有如下的json数组: [ {"id":1, "name":"first2021", "level":5, "score":100, "…

The 2024 ICPC Kunming Invitational Contest F. Collect the Coins(二分)

在知乎内查看 题目 思路来源 官方题解 题解 一旦某个速度v满足,那么大于速度v的都满足,所以可以被二分,但是二分的check不好想,卡住了 最后去看了题解,其实维护的是,一个机器人在目标点收集硬币时&…

UGUI(三大现成UI控件)

Rawimage 可以是任意类型的图,所以这里的泛型就更宽泛,不止sprite 相比Image唯二的不同 uvrect有点像平铺 Text suddenly come to a Free island. best fit开启后会有范围选择 Image image 组件是挂在RectTransform的ui下的,换句话说&…

windows C++-创建数据流代理(二)

完整的数据流演示 下图显示了 dataflow_agent 类的完整数据流网络: 由于 run 方法是在一个单独的线程上调用的,因此在完全连接网络之前,其他线程可以将消息发送到网络。 _source 数据成员是一个 unbounded_buffer 对象,用于缓冲…

整理/删除重复文件

文件分类 #!/bin/bash if [ "$#" -ne 1 ]; thenecho "use: $0 <download_url>"exit 1 fi TARGET_DIR"$1" mkdir -p "$TARGET_DIR/jpg" mkdir -p "$TARGET_DIR/mp4" for img in "$TARGET_DIR"/*.jpg; doif…

k8s 中的 PV 的动态供给

目录 1 存储类 Storageclass 介绍 1.1 StorageClass 说明 1.2 StorageClass 的属性 2 存储分配器 NFS Client Provisioner 2.1 官网存储分配器的部署介绍 2.2 实现动态创建 PV 模版清单文件的介绍 2.2.1 Storageclass 存储类的模版 2.2.2 创建 Provisioner 制备器的模版 2.2.3…

ctf.bugku - POST

题目来源 &#xff1a;POST - Bugku CTF 访问请求&#xff0c;返回如下信息&#xff1b; 从这里可以得到信息&#xff1b;想要得到flag &#xff0c;需要发送post请求&#xff0c;并且请求带有what参数&#xff0c;参数值为flag 构造消息体&#xff1b; burpsuite中&#x…