leetcode134:加油站

加油站

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

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

给定两个整数数组 gascost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。

java 复制代码
public int canCompleteCircuit(int[] gas, int[] cost) {
        int store = 0;
        int MIN = Integer.MAX_VALUE;
        int index = -1;
        for (int i = 0; i < gas.length; i++) {
            store = store - cost[i] +gas[i] ;
            if(store < MIN){
                MIN = store;
                index = i;
            }
        }
        return store>=0 ? (index + 1)%gas.length : -1;
    }

贪心,因为是唯一解,找到跑一圈中总和最小的时刻,从这个时刻后面开始跑即可

相关推荐
俄城杜小帅几秒前
C++线程异步和wpf中比较
java·c++·wpf
umeelove352 分钟前
Springboot的jak安装与配置教程
java·spring boot·后端
The_Ticker2 分钟前
日股实时行情接口使用指南
java·经验分享·笔记·python·算法·区块链
啥咕啦呛2 分钟前
java打卡学习2:Stream高级与Optional
java·windows·学习
靠沿3 分钟前
【递归、搜索与回溯算法】专题一——递归
算法
试试勇气3 分钟前
Linux学习笔记(十九)--生产消费模型与线程安全
java·笔记·学习
凌波粒3 分钟前
LeetCode--24.两两交换链表中的节点(链表)
java·算法·leetcode·链表
猫咪老师5 分钟前
RAG与GraphRAG介绍
人工智能·算法·llm
guojb8245 分钟前
从0开始设计一个树和扁平数组的双向同步方案
前端·数据结构·vue.js
pupudawang7 分钟前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot