贪心算法求解加油站问题

ops/2024/12/28 11:59:49/

代码随想录链接:代码随想录

思路:

首先构造一个差距数组diff,其中每个位置的值都是gas数组和cost数组对应位置的值的差

初始化一个变量start记录从哪个加油站出发,一个变量cursum记录从start出发时车内油量的总和,一个变量totsum表示整个差距数组diff的元素之和

依次遍历差距数组中的每个元素,每遍历一个就更新cursum和totsum,之后判断cursum是否小于0,如果小于0则表示从start出发无法遍历全部的加油站,同时置start为i+1以及将cursum置于0

遍历完毕全部的元素之后,判断totsum是否小于0,如果小于0表示无法找到合适的出发位置能够遍历整个数组,此时返回-1,否则变量start表示的便是能够出发遍历全部加油站的起始位置,将其返回即可

对应代码:

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int index = 0;for (int i = 0; i < gas.length; i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) {index = (i + 1) % gas.length ; curSum = 0;}}if (totalSum < 0) return -1;return index;}
}


http://www.ppmy.cn/ops/144763.html

相关文章

Textual Dataset Distillation via Language Model Embedding

Method 将数据集丢入embedding模型&#xff0c;丢入embedding前可以加入prompt加强效果&#xff0c;然后获取k-means聚类的中心向量来作为需要的蒸馏embeddings&#xff0c;然后使用vec2text模型还原成原始文本。 Result Q&#xff1a; 这里有一点不清楚&#xff1a; 聚类中…

MFC 文档模板 每个文档模板需要实例化吧

文档模板的实例化 在MFC&#xff08;Microsoft Foundation Classes&#xff09;应用程序中&#xff0c;文档模板通常是需要实例化的。文档模板类&#xff08;CDocTemplate&#xff09;主要有两种派生类用于不同的文档 - 视图架构场景&#xff1a;CSingleDocTemplate&#xff08…

uniapp 自定义图标03

插入工程&#xff0c;修改名称文件内容 编译运行

【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(一):从电梯出发的状态模式State Pattern

前言 &#xff08;题外话&#xff09;nav2系列教材&#xff0c;yolov11部署,系统迁移教程我会放到年后一起更新&#xff0c;最近年末手头事情多&#xff0c;还请大家多多谅解。回顾我们整个学习历程&#xff0c;我们已经学习了很多C的代码特性&#xff0c;也学习了很多ROS2的跨…

分布式系统架构4:容错设计模式

这是小卷对分布式系统架构学习的第4篇文章&#xff0c;虽然知道大家都不喜欢看纯技术文章&#xff0c;写了也没多少阅读量&#xff0c;但是为了个人要成长&#xff0c;小卷最近每天都会更新分布式的文章 1.概念 容错策略&#xff0c;指的是“面对故障&#xff0c;我们该做些什…

什么,不用 Tomcat 也能运行 Java web?

在 Java web 开发领域&#xff0c;传统的 Tomcat 服务器一直占据着重要地位。但如今&#xff0c;Blade 框架的出现为我们提供了一种全新的开发体验&#xff0c;它无需依赖 Tomcat 便可运行 Java web 应用。 一、Blade 框架简介 是一款轻量级且高性能的 Java web 框架。其设计理…

ArcGIS Pro 3.4新功能2:Spatial Analyst新特性,密度、距离、水文、太阳能、表面、区域分析

Spatial Analyst 扩展模块在 ArcGIS Pro 3.4 中引入了新功能和增强功能。此版本为您提供了用于表面和区域分析的新工具以及改进的密度和距离分析功能&#xff0c;多种用于水文分析的工具性能的提高&#xff0c;一些新的太阳能分析功能。 目录 1.密度分析 2.距离分析 3.水文…

websocket 局域网 webrtc 一对一 多对多 视频通话 的示例

基本介绍 WebRTC&#xff08;Web Real-Time Communications&#xff09;是一项实时通讯技术&#xff0c;它允许网络应用或者站点&#xff0c;在不借助中间媒介的情况下&#xff0c;建立浏览器之间点对点&#xff08;Peer-to-Peer&#xff09;的连接&#xff0c;实现视频流和&am…