每日一题|134. 加油站|循环数组单次遍历

本题题目比较绕,理解了之后发现就是给一个一维数组表示余量,找出能够首尾相连且后构成每个位置处的累积和都是正数的索引。

首先,根据cost和gas相减,确定每个位置出发去下一个位置所剩余的gas。 

这里可以直接统计全部的余量和,如果小于0可以直接return -1了。

然后开始遍历,从0开始,到len-1截止,为什么只要遍历一个数组长度就够了?

假设1-2这一段是<0的,那么意味着从0出发不能走到0,所以我们更新初始位置和cur=0,然后从2-i这一段依然是<0的,说明2出发无法走回2,所以更新位置为i,cur = 0。这时遍历到数组末尾的时候发现累积和>0,说明i可以作为初始位置,有可能走完全程。

这时,结合之前全程的累计和就可以判断:
如果全程累计和 < 0,直接-1;如果累计和>0,说明最后一次更新位置信息的索引就是出发位置(题干保证了唯一性)。

class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:gas_left = [gas[i] - cost[i] for i in range(len(cost))]total_gas = 0cur_gas = 0start = 0for i in range(len(gas_left)):total_gas += gas_left[i]cur_gas += gas_left[i]if cur_gas < 0:cur_gas = 0start = i + 1if total_gas < 0:return -1return start

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

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

相关文章

IO零拷贝技术

01背景介绍 相信不少的网友&#xff0c;在很多的博客文章里面&#xff0c;已经见到过零拷贝这个词&#xff0c;会不禁的发出一些疑问&#xff0c;什么是零拷贝&#xff1f; 从字面上我们很容易理解出&#xff0c;零拷贝包含两个意思&#xff1a; 拷贝&#xff1a;就是指数据从…

Self-Operating Computer:基于PyAutoGui加AI实现无人“驾驶“电脑,让Python带你走近未来世界

近年来&#xff0c;AI 领域不断取得突破&#xff0c;特别是多模态模型的出现&#xff0c;为计算机无人操控带来了全新的可能性。 想象一下&#xff0c;你的电脑不再需要你手动操作&#xff0c;而是可以像人一样&#xff0c;理解你的指令&#xff0c;并自动执行一系列鼠标键盘操…

在 Ubuntu 安装 Python3.7(没有弯路)

注&#xff1a;当前Ubuntu版本为18.04 下载Python源码包 wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz安装前准备 安装依赖组件 apt-get updateapt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libs…

ELK日志收集之ES的DSL查询语句

一、简介 在Elasticsearch中&#xff0c;我们可以使用Elasticsearch-DSL(Elasticsearch Domain Specific Language)来构建和执行复杂的搜索查询。官方Query DSL指导文档。 叶查询&#xff1a;在特定字段中寻找特定值,例如 match ,term 或 range。 复合查询&#xff1a;具有查询…

yub‘s Algorithm Adventure Day6

链表相交 link&#xff1a;面试题 02.07. 链表相交 - 力扣&#xff08;LeetCode&#xff09; 思路分析 看到描述很直接的想到双指针&#xff0c;但是看到题解之后被K佬的神级理解折服&#xff0c;太妙了&#xff01; 双指针 public class Solution {public ListNode getIn…

《PyTorch深度学习快速入门教程》学习笔记(第15周)

目录 摘要 Abstract 1. 安装Anaconda 2. 查看显卡驱动 3. 安装Pytorch 4. Pytorch加载数据 5. 常用数据集两种形式 6. 路径直接加载数据 7. Dataset加载数据 摘要 本周报的目的在于汇报《PyTorch深度学习快速入门教程》课程第一周的学习成果&#xff0c;主要聚焦于py…

【unity游戏开发】彻底理解AnimatorStateInfo,获取真实动画长度

前言 前置知识&#xff1a;设置参数后&#xff0c;下一个循环才会切换对应动画&#xff0c;所以在下一个循环获取真实的动画长度 AnimatorStateInfo是结构体&#xff01;值类型&#xff0c;要不断重复获取才是最新的 主要是自动设置trigger切换的动画自动切回上一个动画&#x…

进阶岛第4关:InternVL 多模态模型部署微调实践

准备InternVL模型 我们使用InternVL2-2B模型。该模型已在share文件夹下挂载好&#xff0c;现在让我们把移动出来。 mkdir -p /root/project/joke/modelcp -r /root/share/new_models/OpenGVLab/InternVL2-2B /root/project/joke/model # 不用ln -s 准备环境 这里我们来手动配…

算法笔记(十一)——优先级队列(堆)

文章目录 最后一块石头的重量数据流中的第 K 大元素前K个高频单词数据流的中位数 优先级队列是一种特殊的队列&#xff0c;元素按照优先级从高到低&#xff08;或从低到高&#xff09;排列&#xff0c;高优先级的元素先出队&#xff0c;可以用 堆来实现 堆是一种二叉树的结构&…

Microsoft Edge 离线安装包制作或获取方法和下载地址分享

方法一&#xff1a;自制压缩包 进入目录 "C:\Program Files (x86)\Microsoft\Edge\Application" 或 "C:\Program Files (x86)\Microsoft\EdgeCore\Edge版本号"&#xff0c;将所有文件打包&#xff0c;再放到没有安装到 Edge 的电脑里解压&#xff0c;运行…

【瑞昱RTL8763E】歌曲传输

1 概要 Watch 端 SD 卡中的歌曲除了可以通过 USB 传输&#xff0c;还可以通过 SPP/BLE 传输来完成歌曲的添加与删 除操作。其中&#xff0c;Android 手机可以安装 LocalPlayback.apk 使用 SPP 协议与 watch 交互&#xff1b;iOS 手机可以安装 LocalPlayback.ipa 通过 BLE 与 wa…

【高等数学学习记录】函数的极限

一、知识点 &#xff08;一&#xff09;知识结构 #mermaid-svg-Dz0Ns0FflWSBWY50 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Dz0Ns0FflWSBWY50 .error-icon{fill:#552222;}#mermaid-svg-Dz0Ns0FflWSBWY50 .erro…

计算有向无环图中两节点间简单路径的数量

计算有向无环图中两节点间简单路径的数量 主要步骤:伪代码:C代码实现:解释:在给定一个有向无环图(DAG)以及两个节点s和t时,我们需要计算从节点s到节点t之间的简单路径的数量。为了实现这一目标,我们可以使用动态规划的思想,在拓扑排序的基础上解决问题。 主要步骤: 拓…

Spring cloud 中gateway原理

Spring Cloud Gateway 是 Spring Cloud 生态系统中的一个 API 网关解决方案&#xff0c;用于在微服务架构中处理请求路由、负载均衡、认证授权、监控等功能。它基于 Spring 5、Spring Boot 2 和 Project Reactor&#xff0c;提供了非阻塞的、响应式的 API 网关功能。 核心概念…

论文翻译 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust

摘要 近年来&#xff0c;NLP从业者集中于以下实践:(i)导入现成的预训练(掩码)语言模型;(ii)在CLS令牌的隐藏表示(随机初始化权重)上附加多层感知器;(iii)在下游任务(MLP-FT)上微调整个模型。这一过程在标准的NLP基准上产生了巨大的收益&#xff0c;但这些模型仍然很脆弱&#x…

VCSEL驱动电路

1.1 驱动电路 发射端可用MOS管控制VCSEL二极管负极方式发出脉冲光(正极对地)&#xff0c;具体作用过程如下&#xff1a; Step 1: MOS管断开, C2 电容充电(左侧HV)&#xff1b; Step 2: 信号控制MOS管打开&#xff1b; Step 3: MOS管打开后, C2电容左侧电压降为0V, 右侧变为…

CF2013E Prefix GCD

【题目大意】 给定一个长度为 n n n 的数列 a 1 … n a_{1 \dots n} a1…n​&#xff0c;你可以将 a 1 … n a_{1 \dots n} a1…n​ 按照任意顺序进行重排&#xff0c;使得&#xff1a; ∑ i 1 n gcd ⁡ { a 1 , a 2 , a 3 , … , a n } \sum\limits_{i1}^{n}\gcd\left \{…

如何向文科生解释什么是计算机的缓存

缓存&#xff08;Cache&#xff09;是计算机系统中的一个至关重要的技术概念&#xff0c;用于提高数据访问的速度。我们可以把缓存想象成一个临时的存储区域&#xff0c;它存放着系统中常用或最近使用的数据&#xff0c;以便快速访问&#xff0c;而不必每次都从速度较慢的原始数…

新编英语语法教程

新编英语语法教程 1. 新编英语语法教程 (第 6 版) 学生用书1.1. 目录1.2. 电子课件 References A New English Grammar Coursebook 新编英语语法教程 (第 6 版) 学生用书新编英语语法教程 (第 6 版) 教师用书 1. 新编英语语法教程 (第 6 版) 学生用书 https://erp.sflep.cn/…

拒绝踏空和卖飞,魔改CCI指标主升浪战法!

〇、写在前边 其实最应该学习量化的&#xff0c;就是散户。 作为散户&#xff0c;我们能获取的只有公开信息&#xff0c;这使得我们天然就落后于机构、大户和内幕狗。 那么我们可以利用公开信息来提升投资表现吗&#xff1f;当然可以。 网上有大量免费或者低成本就能获取的…