LeetCode 134. 加油站(贪心)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。

你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。

如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。

说明:
如果题目有解,该答案即为唯一答案。
输入数组均为非空数组,且长度相同。
输入数组中的元素均为非负数。

示例 1:
输入: 
gas  = [1,2,3,4,5]
cost = [3,4,5,1,2]输出: 3
解释:3 号加油站(索引为 3)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油
开往 4 号加油站,此时油箱有 4 - 1 + 5 = 8 升汽油
开往 0 号加油站,此时油箱有 8 - 2 + 1 = 7 升汽油
开往 1 号加油站,此时油箱有 7 - 3 + 2 = 6 升汽油
开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油
开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。
因此,3 可为起始索引。示例 2:
输入: 
gas  = [2,3,4]
cost = [3,4,3]输出: -1
解释:
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。
我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油
开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油
开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油
你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。
因此,无论怎样,你都不可能绕环路行驶一周。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/gas-station
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 首先能量守恒:allOil−allcost<0,impossibleallOil-allcost < 0, impossibleallOilallcost<0,impossible
  • 从某个点开始累积的 oil−costoil-costoilcost 值出现负的,说明刚才加上来这段 oiloiloil 不够(前面都过不来),起点只可能在后面,重新累积差值
class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int totalOil = 0, curOil = 0, start = 0;for(int i = 0; i < gas.size(); ++i){curOil += gas[i]-cost[i];totalOil += gas[i]-cost[i];if(curOil < 0){start = i+1;curOil = 0;}}if(totalOil < 0)return -1;return start;}
};

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

诺奖级成果开源!为什么说AlphaFold2足以改变全人类?

文 | 炼丹学徒编 | 小轶前天&#xff0c;AlphaFold2开源&#xff0c;相信大家被大大小小的公众号刷屏了。谷歌Deepmind团队此前使用基于Transformer的模型&#xff0c;在CASP14比赛上&#xff0c;刷新蛋白质三维结构预测的新高度&#xff0c;而详细论文&#xff0c;代码&#x…

美团外卖前端可视化界面组装平台 —— 乐高

乐高&#xff0c;是美团点评一个快速搭建后台系统页面的平台。名称来源于大家熟悉的丹麦知名玩具品牌&#xff0c;他们的玩具都是通过组合易拆卸、装配的零件&#xff0c;形成最终的作品。经过长期的发展&#xff0c;乐高品牌渐渐有了“快乐、想象、创意的未来”的寓意。 随着外…

[Paddle2.0学习之第四步](下)词向量之CBOW

[Paddle2.0学习之第四步]&#xff08;下&#xff09;词向量之CBOW&#xff1a;https://blog.csdn.net/qq_41976613/article/details/118977184

论文浅尝 | 主题驱动的分子图表示对比学习

笔记整理 | 方尹&#xff0c;浙江大学在读博士&#xff0c;研究方向&#xff1a;图表示学习。论文地址&#xff1a;https://arxiv.org/abs/2012.12533动机与贡献现有的对比学习框架中可能存在以下几个弊端&#xff1a;1.把节点看成一种视图&#xff0c;在节点和图之间进行对比学…

LeetCode 931. 下降路径最小和(DP)

文章目录1. 题目2. 动态规划解题1. 题目 给定一个方形整数数组 A&#xff0c;我们想要得到通过 A 的下降路径的最小和。 下降路径可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。 示例&#xff1a; 输…

到2021年,目前深度学习领域有哪些除了调模型以外的硬核研究工作和进展?

文 | 刘斯坦&#xff0c;电光幻影炼金术源 | 极市平台作为一个未入门的研究生小白&#xff0c;一方面为深度学习的实际效果和应用价值而感到兴奋&#xff0c;另一方面也会担忧自己的个人能力的发展。个人目前浅薄的看法是&#xff0c;调模型的强应用向的研究工作&#xff0c;由…

美团点评SQL优化工具SQLAdvisor开源

在数据库运维过程中&#xff0c;优化 SQL 是 DBA 团队的日常任务。例行 SQL 优化&#xff0c;不仅可以提升程序性能&#xff0c;还能够降低线上故障的概率。 目前常用的 SQL 优化方式包括但不限于&#xff1a;业务层优化、SQL逻辑优化、索引优化等。其中索引优化通常通过调整索…

使用flask调用接口去加载模型和数据集,避免每次运行都会重复加载数据集或模型,节约大量等待时间

配置python程序debug/run&#xff0c;避免每次运行都会重复加载数据集或模型&#xff0c;节约大量等待时间 使用轻量级的后端框架flask运行要加载的模型&#xff0c;作为后端&#xff0c;保持在后端运行 调用程序时直接使用url访问即可 需要用到的依赖包&#xff1a; pip inst…

LeetCode 295. 数据流的中位数(大小堆)

文章目录1. 题目2. 大小堆解题1. 题目 中位数是有序列表中间的数。如果列表长度是偶数&#xff0c;中位数则是中间两个数的平均值。 例如&#xff0c; [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 3) / 2 2.5设计一个支持以下两种操作的数据结构&#xff1a;void addNum(int…

论文浅尝 | 利用常识知识图谱进行多跳推理的语言生成方法

笔记整理 | 朱珈徵&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/pdf/2009.11692.pdf动机尽管生成式预训练语言模型在一系列文本生成任务上取得了成功&#xff0c;但在生成过程中需要对基础常识知识进行推理的情况下&#xff0c;它们仍然会受到影响。现有的方法…

成本砍砍砍!不用数据也能用 BERT 做对比学习?

文 | 小昌编 | 小戏大家好&#xff0c;我是小昌&#xff0c;今天和大家聊一聊如何从 BERT 中获取好的句子表征。大家都知道&#xff0c;BERT 的设计初衷是为了获得更好的单词表征。但是&#xff0c;利用 BERT 来表征句子的需求无论在学术界还是工业界都是非常紧迫的。因此&…

Mt-Falcon——Open-Falcon在美团点评的应用与实践

监控系统是整个业务系统中至关重要的一环&#xff0c;它就像眼睛一样&#xff0c;时刻监测机房、网络、服务器、应用等运行情况&#xff0c;并且在出现问题时能够及时做出相应处理。 美团点评刚开始使用的是Zabbix监控系统&#xff0c;几经优化&#xff0c;在当时能够达到2W机器…

paddlenlp 任务清单 中文分词、中文纠错、文本相似度、情感分析、词性标注等一键

PaddleNLP Taskflow https://github.com/PaddlePaddle/PaddleNLP/blob/develop/docs/model_zoo/taskflow.md#paddlenlp-taskflow PaddleNLP Taskflow PaddleNLP Taskflow 介绍 任务清单 用法 查看使用示例中文分词词性标注命名实体识别文本纠错句法分析情感分析文本相似度『解…

论文浅尝 | 以知识图谱为基础的开放域对话生成的目标规划

笔记整理 | 韩振峰&#xff0c;天津大学硕士。链接&#xff1a;https://ojs.aaai.org//index.php/AAAI/article/view/6474动机 之前有关开放域对话生成的神经模型没有有效的机制来管理聊天主题&#xff0c;并且往往会生成不连贯的对话。受到人与人对话策略的启发&#xff0c;本…

LeetCode 378. 有序矩阵中第K小的元素(二分查找)

文章目录1. 题目2. 解题2.1 暴力法2.2 二分查找1. 题目 给定一个 n x n 矩阵&#xff0c;其中每行和每列元素均按升序排序&#xff0c;找到矩阵中第k小的元素。 请注意&#xff0c;它是排序后的第k小元素&#xff0c;而不是第k个元素。 示例: matrix [[ 1, 5, 9],[10, 11,…

LeetCode 341. 扁平化嵌套列表迭代器(双栈)

文章目录1. 题目2. 双栈解题1. 题目 给定一个嵌套的整型列表。设计一个迭代器&#xff0c;使其能够遍历这个整型列表中的所有整数。 列表中的项或者为一个整数&#xff0c;或者是另一个列表。 示例 1: 输入: [[1,1],2,[1,1]] 输出: [1,1,2,1,1] 解释: 通过重复调用 next 直到…

外卖O2O的用户画像实践

美团外卖经过3年的飞速发展&#xff0c;品类已经从单一的外卖扩展到了美食、夜宵、鲜花、商超等多个品类。用户群体也从早期的学生为主扩展到学生、白领、社区以及商旅&#xff0c;甚至包括在KTV等娱乐场所消费的人群。随着供给和消费人群的多样化&#xff0c;如何在供给和用户…

simbert文本相似度,短文本语义匹配模型

simbert文本相似语义召回&#xff1b;保存及在线服务https://blog.csdn.net/weixin_42357472/article/details/116205077 SimBERT&#xff08;基于UniLM思想、融检索与生成于一体的BERT模型&#xff09;【主要应用场景&#xff1a;相似文本生成、相似文本检索】 https://blog.…

论文浅尝 | 利用开放域触发器知识改进事件检测

笔记整理 | 申时荣&#xff0c;东南大学博士来源&#xff1a;ACL 2020源码&#xff1a;https://github.com/shuaiwa16/ekd.git摘要事件检测&#xff08;ED&#xff09;是文本自动结构化处理的一项基本任务。由于训练数据的规模小&#xff0c;以前的方法在unseen/标记稀疏的触发…

Beyond 预训练语言模型,NLP还需要什么样的知识?

近年来&#xff0c;深度学习技术已广泛应用于NLP领域&#xff0c;但实际应用效果往往受限于缺乏大规模高质量监督样本。2018年底&#xff0c;预训练语言模型横空出世&#xff0c;极大缓解了这个问题&#xff0c;通过“超大规模无监督语料上的预训练语言模型相对少量的监督样本进…