码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 134. 加油站


    Powered by:NEFU AB-IN

    Link

    文章目录

    • 134. 加油站
      • 题意
      • 思路
      • 代码

    134. 加油站

    • 题意

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

    • 思路

      假设i为起点,且i最多不能走到j,结论:[i, j]之前任意起点也 不能走到j
      证明:k是可以走到的,所以left[k] >= 0(即从左边走过来还剩下有油)。 如果把k当作起点即left[k]=0,那么还是走不到j,所以下一次枚举起点,可以直接跳过[i- j],O(n)

    • 代码

      class Solution {
      public:
          int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
              int n = gas.size();
              for (int i = 0, j; i < n; ) {  // 枚举起点
                  int left = 0;
                  for (j = 0; j < n; j ++ ) {
                      int k = (i + j) % n;
                      left += gas[k] - cost[k];
                      if (left < 0) break;
                  }
                  if (j == n) return i;
                  i = i + j + 1;
              }
      
              return -1;
          }
      };
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
  • 相关阅读:
    Rust实战 | 用 RustRover 开发猜数字游戏
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
    Skywalking(8.7)安装以及docker镜像打包
    【牛客 - 剑指offer】JZ64 求1+2+3+...+n Java实现
    黑马SSM学习笔记
    Git向Gitea上传项目代码
    Linux学习笔记14—IO多路复用:select/poll/epoll与Reactor模式
    4个技巧告诉你,如何使用SMS促进业务销售?
    【今日文章】:如何用css 实现星空效果
    5)自适应滤波(二)[RLS算法]
  • 原文地址:https://blog.csdn.net/qq_45859188/article/details/132901205
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号