用java写一个汽车加油的程序_Java实现 LeetCode 134 加油站
134. 加油站
在一条环路上有 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 可为起始索引。
示例 2:
输入:
gas = [2,3,4]
cost = [3,4,3]
输出: -1
解释:
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。
我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油
开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油
开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油
你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。
因此,无论怎样,你都不可能绕环路行驶一周。
class Solution {
public int canCompleteCircuit(int[] gas, int[] cost) {
int g = 0, res = 0, start = 0;// 记录车子当前总油量,一路的开销,当前起始的位置
for(int i=0;i
g += gas[i] - cost[i];// 加的油扣掉花费的油
res += gas[i] - cost[i];// 计算一路的开销
if(g < 0) {
g = 0;// 不能到达下一个加油站,清零,从下一个开始
start = i + 1;// 记录下一个起点
}
}
return res < 0 ? -1: start;
}
}
用java写一个汽车加油的程序_Java实现 LeetCode 134 加油站相关推荐
- java递归怎么写_什么是递归?用Java写一个简单的递归程序
什么是递归?用Java写一个简单的递归程序 递归的定义 递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决. 递归的要素 自定义递归函数,并确定函数的基本功能 ...
- java写一个服务定时采集数据_java实现定时任务解决方案
1. 总结常见的实现定时任务的几种方法 thread实现 [原理:通过创建一个线程,让他在while循环里面一直运行,用sleep() 方法让其休眠从而达到定时任务的效果.] Timer类 Sched ...
- java写的围棋游戏小程序_java写的围棋游戏小程序
开发思路 调用applet类作为父类.在init事件中调用Qipan类,作出panel,上加控制用控件.在paint事件里调用drawline函数画棋盘,注册鼠标动作.鼠标单击位置上用drawoval ...
- java写一个会动的圆_JAVA实现一个圆形的移动,画出来的圆形移动,我的圆它不动呀...
展开全部 import java.awt.Graphics; import java.awt.Image; import javax.swing.JFrame; public class JoinDe ...
- Java 百度AI 写一个简单的手势识别程序
教程地址:请关注我的https://edu.csdn.net/course/detail/23001 Java写一个简单的手势识别程序,这里采用百度是AI,视觉技术中的人体分析中的手势识别,识别图片中 ...
- 用Java写一个简易五子棋游戏
一. 程序基本思路: 1.写窗口.棋盘面板.控制面板: 2.绘制棋盘: 3.绘制棋子: 4.添加组件功能: 5.判断输赢: 6.悔棋: 7.复盘. 二.实际操作 1.创建窗口.添加面板 package ...
- 无聊的时候怎么办?教你用java写一个简单挂机打金币小游戏吧!
无聊的时候怎么办?教你用java写一个超简单挂机打金币小游戏吧! Java写一个挂机打金币程序 1.Java的面向对象 2.基础打金的分析 3. Robot介绍以及Demo演示 4.挂机打金程序如何去 ...
- 用Java写一个年薪计算器,助你简单完成大量税前税后总薪计算量
每个有规模一点的公司都会有会计部门这是毋庸置疑的,但是会计的工作真的如大部分人想的那么简单,只是在每个月的最后几天才忙得不可开交吗 ? 答案当然不是,不然这个岗位早就人满为患了. 目前就我了解到的会计 ...
- 怎样用java写一个简单的文件复制程序
怎样用java写一个简单的文件复制程序 代码来源:https://jingyan.baidu.com/article/c35dbcb0d6f1398916fcbc07.html package Num ...
最新文章
- 军规13 降低流量和电量消耗
- MySQL配置全文索引
- hdu5698瞬间移动(组合数,逆元)
- 打不开mysql exe文件怎么打开文件_exe文件打不开怎么办?
- 使用命令行刷新Magento索引管理 Rebuilt Magento Indexes in terminal with php-cli
- au如何关闭预览编辑器_在线IDE开发入门之从零实现一个在线代码编辑器
- Eclipse用法和技巧十二:快速复制一行
- 高中信息技术——进制与编码刷题点整理
- 解决Hbuliderx的代码不能自动补全的问题
- EyouCms前台GetShell漏洞复现
- android 陀螺仪滤波_高精度MEMS陀螺仪的滤波算法研究
- 京东VS淘宝:待付款订单-再次支付方案对比
- CHERRY樱桃机械键盘按键
- 光猫的ip地址段和路由器ip地址段互换
- windows服务器硬盘怎么扩容,windows2016 扩容硬盘
- 解决margin坍塌
- 赶时间发布 ChatGPT 竞品后,Google 遭员工反讽:太仓促、拙劣、非 Google Style
- JS_画中画,video视频播放器
- 国产开源优秀新一代MPP数据库StarRocks入门之旅-数仓新利器(上)
- Pygame实战:升级后的2048小游戏—解锁新花样,根本停不下来【附源码】
热门文章
- 【四二学堂】标准GPS坐标,转换成百度坐标
- 2023华为od面经~ (笔试 HR资面 技术面 一面 二面 综面)
- win7 最常用的快捷键 ( 完全可以使用键盘来操作)
- centos7常用快捷键
- [JZOJ4274] [NOIP2015模拟10.28B组] 终章-剑之魂 解题报告(二进制)
- WMware中ubuntu移动鼠标时鼠标消失解决办法
- 冷冻莴苣的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 怎么判断自己是否适合转行软件测试
- 【python】MAC安装openCV人脸识别
- js监听浏览器tab页面变化