Gas Station——Leetcode系列(十六)

深入解析磁盘性能测试:vdbench与fio的实战对比 本文深入对比了磁盘性能测试两大工具vdbench与fio的核心定位与实战应用。vdbench擅长多客户端、可编排的存储系统集成测试,而fio则以灵活的单机深度定制见长,是测试硬件极限和模拟特定应用IO模型的利器。文章通过安装指南、参数解析和典型场景对比,帮助读者根据需求选择合适工具,精准评估磁盘性能。 阅读详情

Gas Station

 

There are N gas stations along a circular route, where the amount of gas at station i is gas[i].

You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.

Return the starting gas station's index if you can travel around the circuit once, otherwise return -1.

Note:
The solution is guaranteed to be unique.



Analysis:

First, iterate from station 0 to station length -1, if gas < cost, then start from index + 1 to index (circle) ; we use flag to avoid starting station 0 again.  If there is no solution from ascending, then we start station length -1 to station 0 reversely, by the same method.


Solution:

public class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int length = gas.length;
        boolean flag = false;
        for(int i = 0; i < length; i++){
           int index = i;
           int remain = 0;
           while(true){
               if(remain + gas[index] >= cost[index]){
                   remain += gas[index] - cost[index];
                   index++;
               }else{
                   i = index;
                   break;
               }
               if(index == length){
                   index = 0;
                   flag = true;
               }
               if(index == i){
                   return index;
               }
           }
           if(flag){
               break;
           }
        }
        flag = false;
        for(int i = length - 1; i >= 0; i--){
            int index = i;
            int remain = 0;
            while(true){
                if(remain + gas[index] >= cost[(index - 1 + length) % length]){
                    remain += gas[index] - cost[(index - 1 + length) % length];
                    index--;
                }else{
                    i = index;
                    break;
                }
                if(index == -1){
                    index = length - 1;
                    flag = true;
                }
                if(index == i){
                    return index;
                }
            }
            if(flag){
                break;
            }
        }
        return -1;
    }
}


题目来源:https://oj.leetcode.com/problems/gas-station/

分级 API Key 的使用案例 分级 API Key 的使用案例 1. 背景介绍 1.1 问题由来 随着网络服务的普及,API(Application Programming Interface,应用程序编程接口)成为了连接不同系统和应用的关键桥梁。API Key(API密钥) 阅读详情

相关推荐

Verilog实现SPI通信协议驱动设计

线性序列机实现SPI协议

H19981118的博客 6086

树状形式打印二叉树

树状结构打印二叉树,na

Hooting的码农笔记本 1万+

LTR-390UV-01对比VEML6075:5个真实项目中的选型避坑指南

本文对比了LTR-390UV-01和VEML6075两款环境光传感器在5个真实项目中的表现,提供了选型避坑指南。通过智能手环、农业温室、紫外线消毒柜等场景的实测数据,分析了动态范围、抗干扰性、温度稳定性等关键差异,帮助开发者在成本与性能间做出最优选择。

weixin_28733777的博客 220

ajax发送get、post请求

ajax可以发送post或者get请求,并且keyi

Hooting的码农笔记本 1万+

vasp算表面吸附流程_VASP表面吸附计算实例分析

本文主要为了记录在学习Vasp计算过程中如何设置INCAR中的一些参数,并不着重讲解其含义,详见可自行到vasp官网查阅。其次关于建模部分也不做细致讨论,一般结构可从Materials Studio里自带的晶体数据库导出,或从三大数据库网站上下载:1、Materaials Project网址:https://materialsproject.org/(强烈推荐,邮箱注册即可使用)2、CCDC网址:...

weixin_39617669的博客 2240

Serial RapidIO Gen2 IP 说明(三)

前言 继续接着上篇文章,介绍Serial RapidIO Gen2 IP 的具体端口信息。 一、端口描述 1、缓冲设计接口 2、物理层接口 参考说明 【1】Serial RapidIO Gen2 v4.1https://china.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/srio_gen2/v4_1/pg007_srio_gen2.pdf ...

记录所学,分享知识,结识挚友 1321

字符输出大小不一致的问题

在例如JTextArea这样的kongjian

Hooting的码农笔记本 1万+

【图像超分】论文精读:Residual Dense Network for Image Super-Resolution(RDN)

一个非常深的卷积神经网络 (CNN) 最近在图像分类 (SR) 方面取得了巨大成功,并提供了分层特征。然而,大多数基于深度 CNN 的 SR 模型没有充分利用原始低分辨率 (LR) 图像中的层次特征,从而实现相对较低的性能。在本文中,我们提出了一种新的残差密集网络(RDN)来解决图像SR中的这个问题。我们充分利用所有卷积层的分层特征。具体来说,我们提出了残差密集块(RDB)通过密集连接的卷积层提取丰富的局部特征。RDB 进一步允许将前一个 RDB 的状态与当前 RDB 的所有层直接连接,从而产生连续的内存

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 7258

Eclipse + Tomcat 配置

开发环境 Eclipse For Java EE(Kepler Release) Tomcat(7.0) 开发步骤 点击Eclipse->Help->Install New Software.. 添加更新源:http://download.eclipse.org/callisto/releases/ 选中Web and J2EE Development并安装 新建

Hooting的码农笔记本 9722

Pytorch实用教程:super(MLP,self).__init__()和super().__init__()有什么区别?

在 Python 中,super()函数用于调用父类(超类)的方法。它的使用在继承关系中非常常见,特别是在初始化继承自父类的属性时。在 PyTorch 中,这通常见于初始化nn.Module类的子类。super()的两种调用方式有微妙的差别,但在 Python 3 中常常用来达到同样的目的。这种写法在 Python 2 中非常常见。这里,super()被调用时需要指定当前类名(MLP)和当前实例(self。

若北辰 1026

重回童年的经典系列☀️|【炸弹人小游戏】制作过程+解析 | 收藏起来跟曾经的小伙伴一起梦回童年!

Unity,小游戏开发。 本篇文章对童年经典小游戏——炸弹超人进行制作和解析。不知道有没有勾起你童年的回忆呢!快来和我一起制作这个童年经典的小游戏吧! 敬请品尝!

努力前行,总会成为自己心中的那道光 13万+

JDK配置

Window7下的JDK环境变量配置:

Hooting的码农笔记本 9511

SAP CRP能力计划详细说明操作及相关配置

2、求助朋友同事的希望破灭后,网上找了资料发现在百度搜索的资料基本都是没有说明白什么才产能计划,都没有详细的操作说明,然后用google去搜索了一些相关的文章,好像也没有详细的文章。然后也去SAP的官网搜索了相关的文章,都是文字性的表述,对系统的配置都没有很大的帮助,很久之前有记得在隐身人的博客中有提到CRP的能力计划的文章,然后试着去找了一下相关的文章。5、首先产能排产肯定涉及的就是是能力的问题,能力第一个能想到的就是工作中心中的能力页签,在流程制造中也叫资源,其实都是一个东西。

我小时候很黑的博客 4520

判断字符串是否能分割成字典中的单词(一)——Leetcode系列(十一)

Word Break Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s = "leetco

Hooting的码农笔记本 4260

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

判断字符串是否能分割成字典中的单词(二)——Leetcode系列(十二)

Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word. Return all such possible sentences. For example, given s = "

Hooting的码农笔记本 3527

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java HashMap的实现

HashMap是Java中经常使用的集合类。

Hooting的码农笔记本 3267

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Iterator与Enumeration的区别

Iterator是一个接口,包含三个方法: hasNext() next() remove() Enumeration也是一个接口,它是一个遗留类,集合类中只有Vector和HashTable实现了该接口。它包含了两个方法: 1. hasMoreElements() 2. nextElement()由接口定义可知,Iterator在遍历时可以对元素进行删除操作,当遍历过程中,有其他线程对集合类的

Hooting的码农笔记本 2939

使用快速排序算法对列表进行排序——Leetcode系列(四)

Sort a linked list in O(n log n) time using constant space complexity. My Answer:

Hooting的码农笔记本 2929

Quick-Union[Algorithm]

Q. Is there a path connecting p and q ?

Hooting的码农笔记本 2894

Fail Fast与Fail Safe的区别

Fail FastFail Fast Iterator在遍历集合时,若该集合发生了结构性的改变,则将抛出 ConcurrentModification 异常。例如: Map<String, String> premiumPhone = new HashMap<String, String>(); premiumPhone.put("Apple", "iPhone");

Hooting的码农笔记本 2770

分配糖果问题——Leetcode系列(十五)

Candy   There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must

Hooting的码农笔记本 1475

Spring事务管理学习笔记

1.      主要接口介绍 在Spring中,与事务相关的类或接口有以下三个: Ø  TransactionDefinition TransactionDefinition的作用是定义一个事务的属性,比如传播属性、隔离属性、超时属性等。 Ø  TransactionStatus TransactionStatus记录一个运行时的事务。 Ø  Platfor

Hooting的码农笔记本 1473

数据结构 二叉堆 & 堆排序

二叉堆,是一个满二叉树,满足堆的性质。即父节点大于等于子节点(max heap)或者是父节点小于等于子节点(min heap)。二叉堆的如上性质常用于优先队列(priority queue)或是用于堆排序。 由于max heap 与min heap类似,下文只针对min heap进行讨论和实现。 如上图,是根据字母的ASCII码建立的最小堆。 我们用数组对满二叉树采用宽度优先遍历存储

Hooting的码农笔记本 1387

LeetCode2461~2480题目解析

LeetCode2461~2480题目解析

jiaomubai的博客 141

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 183

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 212
上一篇: 分配糖果问题——Leetcode系列(十五)
下一篇: Sum Root to Leaf Numbers ——Leetcode系列(十七)
Hooting
博客等级 码龄17年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值