面试经典150题(14)

leetcode 150道题 计划花两个月时候刷完,今天(第五天)完成了1道(14)150:
14. (134. 加油站)题目描述:

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

第一版(暴力求解,超时了,好难啊,想不到题解里面的想法。。垃圾暴力求解我就不放这了,放一下吧暴力求解也写了好一会。。。)

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int gasAmount=0;int costAmount=0;int len=gas.length;int[] amount=new int[len];for(int i=0;i<len;i++){gasAmount+=gas[i];costAmount+=cost[i];amount[i]=gas[i]-cost[i];}if(gasAmount<costAmount){return -1;}for(int i=0;i<len;i++){if(amount[i]>=0){int res=canGo(amount,i);if(res!=-1)return i;}}return -1;   }public int canGo(int[] amount, int index){int len=amount.length;int temp=index;int sum=amount[temp++];temp=temp%len;while(temp!=index){if(sum<0){return -1;}sum+=amount[temp++];temp=temp%len;}return index;}
}

第二版(看的题解,说实话官方给的题解是真的看不懂 还得是评论区的通俗易懂,总结就是,找gas[i]-cost[i] 和的最小值,然后最小值的下一个就是答案,一脸懵逼的我)

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int gasAmount=0;int costAmount=0;int len=gas.length;int[] amount=new int[len];for(int i=0;i<len;i++){gasAmount+=gas[i];costAmount+=cost[i];if(i==0)amount[i]=gas[i]-cost[i];else{amount[i]=amount[i-1]+gas[i]-cost[i];}}if(gasAmount<costAmount){return -1;}// 找最小的int minValue=Integer.MAX_VALUE;int minIndex=-1;for(int i=0;i<len;i++){if(amount[i]<minValue){minValue=amount[i];minIndex=i;}}// 这个说是与一个案例有 bug 所以要加上这一句。。if(minValue>=0)  return 0;return (minIndex+1)%len;}
}

早日跳槽,明天好好刷,今天周一加上周日失眠了,各种debuff加满了。。。跳槽、跳槽!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<JavaEE> 锁进阶 -- synchronized 的锁优化

目录 一、如何形容 synchronized 锁 二、锁升级 2.1 偏向锁 2.2 轻量级锁 2.3 重量级锁 三、锁消除 四、锁粗化 一、如何形容 synchronized 锁 synchronized 锁是一个内部优化非常好的锁&#xff0c;大部分情况下这个锁都是适用的。在初始阶段 synchronized 是一个乐观…

分布式搜索引擎02

分布式搜索引擎02 在昨天的学习中&#xff0c;我们已经导入了大量数据到elasticsearch中&#xff0c;实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天&#xff0c;我们研究下elasticsearch的数据搜索功能。我们会分别使用DSL和Res…

react面试总结2

redux中sages和thunk中间件的区别&#xff0c;优缺点 Redux 中的 redux-saga 和 redux-thunk 都是中间件&#xff0c;用于处理异步操作&#xff0c;但它们有一些区别。 Redux Thunk&#xff1a; 简单易用&#xff1a;redux-thunk 是比较简单直观的中间件&#xff0c;它允许 …

手撕分布式缓存---HTTP Server搭建

经过了前两个章节的学习&#xff0c;分布式缓存的存储与新增我们已经实现了&#xff0c;并且对其做了高可用处理。本章节我们剥离和缓存强相关的逻辑&#xff0c;开始搭建一个HTTP服务器&#xff0c;毕竟缓存数据库搭建完之后别人没法访问也是没有用处的。这一章节我们重点学习…

ElasticSearch应用场景以及技术选型[ES系列] - 第496篇

历史文章&#xff08;文章累计490&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 M…

PDF控件Spire.PDF for .NET【转换】演示:将 PDF 转换为 Excel

PDF是一种通用的文件格式&#xff0c;但它很难编辑。如果您想修改和计算PDF数据&#xff0c;将PDF转换为Excel将是一个理想的解决方案。在本文中&#xff0c;您将了解如何使用Spire.PDF for .NET在 C# 和 VB.NET 中将 PDF 转换为 Excel。 Spire.Doc 是一款专门对 Word 文档进行…

【华为数据之道学习笔记】3-10元数据管理架构及策略

元数据管理架构包括产生元数据、采集元数据、注册元数据和运 维元数据。 产生元数据&#xff1a; 制定元数据管理相关流程与规范的落地方案&#xff0c;在IT产品开发过程中实现业务元数据与技术元数据的连接。 采集元数据&#xff1a; 通过统一的元模型从各类IT系统中自动采集元…

多线程(初阶九:线程池)

目录 一、线程池的由来 二、线程池的简单介绍 1、ThreadPoolExecutor类 &#xff08;1&#xff09;核心线程数和最大线程数&#xff1a; &#xff08;2&#xff09;保持存活时间和存活时间的单位 &#xff08;3&#xff09;放任务的队列 &#xff08;4&#xff09;线程工…

Axure的安装以及简单使用

目录 Axure简介 是什么 有什么用 Axure的优缺点 优点&#xff1a; 缺点&#xff1a; 安装 汉化 Axure的使用 工具栏 页面 ​编辑 添加子页面 ​编辑 Axure简介 是什么 Axure是一款著名的原型设计工具。它允许用户创建交互式线框图、流程图、原型和其他设计文档&…

「Verilog学习笔记」脉冲同步电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule pulse_detect(input clk_fast , input clk_slow , input rst_n ,input data_in ,output dataout );reg data_level, dat…

第十一章 React 封装自定义组件

一、专栏介绍 &#x1f30d;&#x1f30d; 欢迎加入本专栏&#xff01;本专栏将引领您快速上手React&#xff0c;让我们一起放弃放弃的念头&#xff0c;开始学习之旅吧&#xff01;我们将从搭建React项目开始&#xff0c;逐步深入讲解最核心的hooks&#xff0c;以及React路由、…

【NLP】RAG 应用中的调优策略

​ 检索增强生成应用程序的调优策略 没有一种放之四海而皆准的算法能够最好地解决所有问题。 本文通过数据科学家的视角审视检索增强生成&#xff08;RAG&#xff09;管道。它讨论了您可以尝试提高 RAG 管道性能的潜在“超参数”。与深度学习中的实验类似&#xff0c;例如&am…

关于jinja2高版本api变化导致notebook导出html失败的问题

最新jinja2版本已经到了3.1.2&#xff0c;但是nbconvert引用的应该是老版本&#xff0c;具体代码报错如下 Type "help", "copyright", "credits" or "license" for more information. >>> import nbconvert Traceback (most…

spark从表中采样(随机选取)一定数量的行

在Spark SQL中&#xff0c;你可以使用TABLESAMPLE来按行数对表进行采样。以下是使用TABLESAMPLE的示例&#xff1a; SELECT * FROM table_name TABLESAMPLE (1000 ROWS);在这个示例中&#xff0c;table_name是你要查询的表名。TABLESAMPLE子句后面的(1000 ROWS)表示采样的行数…

axios 基础的 一次封装 二次封装

一、平常axios的请求发送方式 修改起来麻烦的一批 代码一大串 二、axios的一次封装 我们会在src/utils创建一个request.js的文件来存放我们的基地址与拦截器 /* 封装axios用于发送请求 */ import axios from axios/* (1)request 相当于 Axios 的实例对象 (2)为什么要有reque…

VSCode使用Remote-SSH连接服务器时报错:无法与“***”建立连接: XHR failed.

关于VSCode的报错问题&#xff1a;无法与“***”建立连接: XHR failed 问题描述问题理解解决方法手动在本地下载安装包&#xff0c;然后手动传到服务器端 问题描述 是的&#xff0c;我又踩坑了&#xff0c;而且这个弄了好久&#xff0c;也重新装了VSCode软件&#xff0c;好像结…

2024黑龙江省职业院校技能大赛暨国赛选拔赛“GZ031应用软件系统开发”赛项赛题题库

2024黑龙江省职业院校技能大赛暨国赛选拔赛 “GZ031应用软件系统开发”赛项赛题题库 2024黑龙江省职业院校技能大赛暨国赛选拔赛 应用软件系统开发赛项&#xff08;高职组&#xff09; 赛题第1套 目录 竞赛说明 模块一&#xff1a;系统需求分析 任务1&#xff1a;制造执行…

Kotlin之for循环的具体使用说明

我们用java进行Android开发过程中&#xff0c;经常会用到for循环&#xff0c;在Kotlin中也会经常用到&#xff0c;但是在最近使用Kotlin中我发现&#xff0c;在java中使用for循环不会有什么问题&#xff0c;但是在Kotlin中会出现问题&#xff0c;就是循环出出来的结果不一样&am…

前端框架(Front-end Framework)和库(Library)的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

阿里云国际版CDN加速,如何判断网站IP已加速?

将源站接入阿里云CDN服务后&#xff0c;您可以通过IP检测功能&#xff0c;检测客户端请求实际访问的IP是否为CDN加速节点IP&#xff0c;判断加速是否生效。 应用场景 IP检测的应用场景如下&#xff1a; 场景一&#xff1a;成功配置CDN后&#xff0c;您可以检测客户端请求实际…