LeetCode 134. 加油站

作为一名菜鸡,发现不做笔记真不行,勤劳致富。
题目连接:https://leetcode-cn.com/problems/gas-station/

第一种

暴力循环每个作为起点时 是否满足条件(射射发抖,只想到了暴力)

第二种解法。

本着学到了就是自己的原则打开题解区
先学习一波官方题解
题解区看到一个大佬最清晰的解释,记录一下
就是说 用折现来表示当前油量
那么,将油量最低点上移到0点往上,也是是作为 起点,那么 其他点的油量就肯定不会低于0
大佬的思路是不是很清晰 那么通过这样理解,代码就很好写了
柱状图
绿色:可添加的汽油 gas[i]
橙色:消耗的汽油 cose[i]
折线图:
虚线(蓝色):当前加油站的可用值
实线(黑色):从0开始的总剩余汽油量

在这里插入图片描述

class Solution {
  public int canCompleteCircuit(int[] gas, int[] cost) {
    int n = gas.length;
    int minIndex=0;
    int minValue=Integer.MAX_VALUE;
    int count = 0;
    for(int i=0;i<n;i++){
        count+=gas[i]-cost[i];
        if(count<minValue){
            minValue=count;
            minIndex=i;
        }
    }
    return count<0?-1:(minIndex+1)%n;
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值