leetcode:加油站(贪心)

加油站加油问题(贪心算法) 第一行有2 个正整数n和 k,表示汽车加满油后可行驶n公里,且旅途中有k个加油站 。接下来的1 行中,有 k+1个整数,表示第 k个加油站与第k-1个加油站之间的距离。 第0个加油站表示出发地,汽车已加满油。第k+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 可为起始索引。
 */
//贪心思想进行求解: 贪心的思想就是:总是做出在当前看起来最好的选择,
// 不从整体最忧上加一考虑,也就是说只关心当前的最优解
public class CanCompleteCircuitLeetcode {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        //start记录开始的位置
        //sum记录总得剩余油量
        //total第i次是否到达第i+1处加油站
        //当i的total《0时发现到达不了i+1处则直接把记录位置挪到i+1处因为前面不可能会条件成立
        int start=0,sum=0,total=0;
        for (int i = 0; i <gas.length ; i++) {
            total+=(gas[i]-cost[i]);
            sum+=(gas[i]-cost[i]);
            if (total<0){
                start=i+1;
                //初始化本次的剩余油量
                total=0;
            }
        }
        if (sum<0){
            return -1;
        }else {
            return start;
        }
    }

    public static void main(String[] args) {
        CanCompleteCircuitLeetcode a=new CanCompleteCircuitLeetcode();
        int[] m={4,5,2,6,5,3};
        int[] b={3,2,7,3,2,9};
        System.out.println(a.canCompleteCircuit(m,b));
    }
}

 

STK12与Python联合仿真(一):环境搭建 STK仿真python接口,安装与测试 阅读详情

相关推荐

SAP SD信贷管理实战:从配置到风险控制的完整指南(附后台路径)

本文详细解析了SAP SD信贷管理的完整配置流程与风险控制策略,涵盖信贷控制范围设置、风险分级机制及动态控制配置。通过实战案例和后台路径指引,帮助企业实现从客户信用评估到实时监控的全流程管理,有效降低坏账风险并优化资金安全。

3a9bq4r8t2y的博客 214

leetcode:134. 加油站

题目来源 leetcode:gas-station 题目描述 class Solution { public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { } }; 题目解析 把这个题理解成下边的图就可以。 每个节点表示添加的油量,每条边表示消耗的油量。题目的意思就是问我们从哪个节点出发,还可以回到该节点。只能顺时针方向走。 暴力 遍历每一个加油站为起点的情况

OceanStar的博客 1197

【QGIS】利用“创建网格”功能实现区域等距分割与坐标转换实战

本文详细介绍了如何在QGIS中使用“创建网格”工具实现区域等距分割。通过实战演示,将北京市行政区划切割为150米正方形网格,并重点讲解了关键步骤:选择投影坐标系EPSG:3857以确保网格尺寸精确,以及将结果转换为常用的WGS84经纬度坐标。文章还涵盖了进阶技巧与常见问题解决方案,帮助用户高效完成空间网格化分析任务。

weixin_29232507的博客 96

LeetCode刷题复盘笔记—一文搞懂贪心算法之134. 加油站问题(贪心算法系列第七篇)

对于本题暴力解法模拟跑一圈的过程时间复杂度是On2O(n^2)On2的,贪心的精髓,就是用局部最优可以推出全局最优,进而求得起始位置。

Lucky_Alan_Gareth的博客 749

工业机器人关节拆装流程_一文读懂模块化直驱电机及机器人关节模组

私信“干货”二字,即可领取138G伺服与机器人专属及电控资料!如果说芯片是智能行业最为重要的核心元件,那么电机几乎可以说是支撑了整个自动化和大工业生产以及现代社会最为重要的部件,全世界90%的能源是由电机发出来的,而70%是由电机消耗调的,电机可以说是整个人类社会能源循环的占有绝对地位的产品。普通伺服电机伺服电机其实已经算是电动机中比较高端的类型,特别是永磁同步类型的伺服电机,由于其启动快速,惯量...

weixin_32159771的博客 2156

饥荒Mod 开发(二):Mod目录结构

饥荒中的每个Mod 都有一些固定的目录结构,各个目录的放着不同类型的文件。动画,图片,源代码等。我们最好是遵守Mod 开发中的各个目录结构,我用的是WeGame 安装的饥荒游戏,Mod 目录如下,这个目录下保存所有订阅的Mod。

小乖写代码 4632

134. 加油站(力扣LeetCode)

i从0开始累加rest[i],和记为curSum,一旦curSum小于零,说明[0, i]区间都不能作为起始位置,因为这个区间选择任何一个位置作为起点,到i这里都会断油,那么起始位置从i+1算起,再从0计算curSum。情况二:rest[i] = gas[i]-cost[i]为一天剩下的油,i从0开始计算累加到最后一站,如果累加没有出现负数,说明从0出发,油就没有断过,那么0就是起点。返回这个加油站的索引。那么为什么一旦[0,i] 区间和为负数,起始位置就可以是i+1呢,i+1后面就不会出现更大的负数?

m0_73841621的博客 1627

Vivado FIR Complier_IP核使用方法

文章依靠该IP核对应手册PG149写的,因为笔者需求简单,没有深入挖掘功能,可以自行下载学习。

2302_80180551的博客 3997

leetcode(力扣) 134. 加油站 (贪心 & 两种情况,老司机逻辑题)

感觉这是一道逻辑题。经常开长途高速的司机朋友应该比较容易懂??玄学了。。。

深度不学习!!的博客 1794

Python对接海康威视机器视觉工业相机

工业相机只允许单条连接,也就是说MVS如果连接了相机,python代码就无法获取数据,此时必须。相机工具类(读者直接复制)HKCamera_class.py。博主这里出现了一个警告:获取不到相机参数。四、使用Pycharm打开Python代码示例文件夹。三、找到MVS示例代码(代码在MVS的安装位置)二、解压并安装MVS客户端。一、下载MVS客户端。安装一下opencv。

Good Luck 2万+

基于 YOLOv26 的高速抛物识别系统:微小目标检测

本文提出了一种基于YOLOv26的高速抛物识别系统,专注于微小目标检测。系统采用多模块协同架构,包括视频预处理、YOLOv26检测、目标跟踪和抛物行为分析等模块。关键技术包括YOLOv26s模型检测、DeepSORT目标跟踪和边缘计算部署。通过构建包含多种抛物类型的专业数据集,并应用数据增强技术提升模型性能。系统实现了车辆检测、微小抛物目标识别、抛物轨迹分析和风险等级评估等功能,可实时检测高速公路上的抛物行为并触发告警,为交通管理提供智能化解决方案。

一键难忘的博客 635

Leetcode134. 加油站 -代码随想录

【代码】代码随想录 Leetcode134. 加油站。

meeiuliuus的博客 622

金砖大赛-第二届网络安全防护治理实战技能大赛全国总决赛WP

格式进行md4加密,然后将小写的md4密文进行作为flag信息进行提交,提交格式为flag{MD4小写},例如调用频率异常高的user_id是user_xxx,使用的非公开模型名称是model-name,具体调用次数为10,那么按照格式,对user_xxx:model-name:10进行md4加密后,提交范例为:flag{dd00cb9e393f4a9ac639294b3cfe4d6a}挖矿木马是通过远程脚本进行部署的,请登录到失陷的服务器上,找到并分析挖矿木马是从那个远程IP下载的。

Laffrey的专栏 245

力扣—贪心:加油站

在一条环路上有 n个加油站,其中第 i个加油站有汽油gas[i]升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。 示例1: 输入: gas = [1,2,3,4,5], cost = [3,4,5,1,2] 输出: 3 解释: 从 3...

qq_53344479的博客 1030

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++ LeetCode 134 加油站 三种解法:暴力,贪心

【代码】C++ LeetCode 134 加油站 三种解法:暴力,贪心。

m0_38056925的博客 400

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LeetCode:134 加油站 模拟 / 贪心

题目 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组中的元素...

AKGWSB 's blog 246

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode 134:加油站(贪心算法) —— 题解

贪心算法——加油站

2601_96587588的博客 584

LeetCode 134. 加油站:一个简单的贪心写法

力扣第134道题:加油站,一个简单易懂算法

weixin_46073334的博客 169

leetcode134:加油站(图解贪心)

本文介绍了LeetCode 134题“加油站问题”的解题思路与实现。题目要求判断汽车能否绕环形路线行驶一周并返回唯一的起点加油站编号。通过分析暴力解法(O(N²))的局限性,提出基于贪心策略的O(N)解法。关键思路是计算油量净收益(gas[i] - cost[i])的累加和,找到油量最低点的下一个加油站作为起点。该解法在保证总油量足够的前提下(sum(gas) ≥ sum(cost)),通过一次遍历即可确定唯一解。代码实现简洁高效,时间复杂度O(N),空间复杂度O(1)。提交结果显示该方法能有效解决问题。

lyh2004_08的博客 1000

【LeetCode】每日一题 2024_10_6 加油站(贪心)

【LeetCode】每日一题 2024_10_6 加油站(贪心)

Locky136的博客 909

力扣 LeetCode 134. 加油站(Day16:贪心算法)

看gas与cost的差值,统计curSum,一旦curSum为负,则start从下一个位置开始。同时统计totalSum,totalSum最终小于0,则说明找不到能跑完一圈的起点。

qq_61504864的博客 284

【LeetCode: 134. 加油站 | 贪心算法】

【LeetCode: 134. 加油站 | 贪心算法】在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。

Coder_ljw的博客 1281

LeetCode刷题笔记【25】:贪心算法专题-3(K次取反后最大化的数组和、加油站、分发糖果)

LeetCode刷题笔记、贪心算法专题、K次取反后最大化的数组和、加油站、分发糖果

Eibosinu的博客 1855

LeetCode 134. 加油站:从暴力验证到贪心最优解

本文分析了LeetCode 134题“加油站”的两种解法。暴力解法通过筛选候选起点并逐个验证,时间复杂度O(n²),适合初学者理解;贪心算法利用油量平衡特性,在遍历中跳过无效起点,将复杂度优化至O(n)。两种方法都基于"总油量≥总消耗必有解"的前提,但贪心解法更高效。文章详细讲解了解题思路、代码实现和复杂度分析,并通过测试用例验证了正确性,建议面试时先展示暴力解法再优化,体现算法思维进阶能力。

2401_86788218的博客 964

力扣每日一题:134.加油站 贪心+暴力双解

134.加油站 https://leetcode-cn.com/problems/gas-station/ 难度:中等 题目: 在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1个加油站需要消耗汽油cost[i]升。 你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则...

清风Python 471

leetcode134:加油站(贪心算法)

leetcode134:加油站 题目: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。 思路:贪心算法+代码注释 代码如下: class Solution

immortalize的博客 926
上一篇: leetcode:搜索排列数组(java)
下一篇: leetcode:买卖股票最佳时期(贪心java)
ArchitectDream
博客等级 码龄9年 48粉丝 288原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值