首页 > 其他分享 >力扣134.加油站

力扣134.加油站

时间:2024-08-29 22:22:45浏览次数:13  
标签:油量 加油量 int gas 力扣 加油站 差值 134

class Solution {
    // 定义一个方法,用于判断是否可以完成环路行驶
    public int canCompleteCircuit(int[] gas, int[] cost) {
        // 初始化当前累加油量和总油量差值
        int curSum = 0;
        int totalSum = 0;
        // 初始化起始加油站索引
        int index = 0;
        // 遍历加油站数组
        for (int i = 0; i < gas.length; i++) {
            // 计算当前加油站的油量差值(加油量减去消耗量)并累加到当前累加油量
            curSum += gas[i] - cost[i];
            // 计算总油量差值并累加到总油量差值
            totalSum += gas[i] - cost[i];
            // 如果当前累加油量小于0,说明从当前加油站出发无法到达下一个加油站
            if (curSum < 0) {
                // 重置当前累加油量为0
                curSum = 0;
                // 更新起始加油站索引为下一个加油站
                index = i + 1;
            }
        }
        // 如果总油量差值为负数,说明无法完成环路行驶
        if (totalSum < 0) {
            return -1;
        }
        // 返回起始加油站索引
        return index;
    }
}
 

标签:油量,加油量,int,gas,力扣,加油站,差值,134
From: https://blog.csdn.net/2401_83010439/article/details/141685956

相关文章

  • 力扣238.除自身以外数组的乘积
    classSolution{publicint[]productExceptSelf(int[]nums){//获取数组长度intlength=nums.length;//创建一个新数组,用于存储结果int[]answer=newint[length];//初始化第一个元素为1,因为乘积不包括自身......
  • 力扣: 环形链表
    文章目录需求MapSet快慢指针结尾需求给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。......
  • JSP加油站进销存系统csgz3程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:客户,员工,加油站类型,加油站,进油信息,加油信息,促销活动,请求申请,员工考勤开题报告内容一、课题背景与意义随着汽车保有量的不断增加,加油站作为能......
  • 力扣热题100_贪心算法_45_跳跃游戏
    文章目录题目链接解题思路解题代码题目链接45.跳跃游戏II给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i]......
  • 南沙信息学家教陈老师: 1349:【例4-10】最优布线问题
    ​【题目描述】学校有nn台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们......
  • 【力扣】3145.大数组元素的乘积
    题目描述一个非负整数 x 的 强数组 指的是满足元素为2的幂且元素总和为 x 的最短有序数组。下表说明了如何确定 强数组 的示例。可以证明,x 对应的强数组是独一无二的。数字二进制表示强数组100001[1]801000[8]1001010[2,8]1301101[1,4,8]2310111[1,2,4,16]......
  • 56. 合并区间【 力扣(LeetCode) 】
    一、题目描述  以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。二、测试用例示例1:输入:intervals=[[1,3],[2,6],[8,10],[15,18]]输......
  • 力扣刷题---链表专题(超详细解析!!!)
    文章目录题目203.移除链表元素876.链表的中间结点024.反转链表21.合并两个有序链表面试题02.04分割链表面试题02.02.返回倒数第K个节点023.相交链表题目203.移除链表元素题目链接这个题目有两种方法,第一种是创建新的链表,然后将原链表遍历一遍,跳过所有值为val的......
  • 力扣34
    classSolution{publicint[]searchRange(int[]nums,inttarget){intx=left(nums,target);if(x==-1){returnnewint[]{-1,-1};}else{returnnewint[]{x,right(nums,target)};}}......
  • 力扣35
    1.Java的二分查找publicintsearchInsert(int[]nums,inttarget){inti=0,j=nums.length-1;while(i<=j){intm=(i+j)>>>1;if(target<nums[m]){j=m-1;}......