当前位置: 首页 > article >正文

贪心算法(11)(java)加油站

题目:在一条环路上有n个加油站,其中第i个加油站有汽油 gas[i]升.。
           你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发,开始时油箱为空。
           给定两个整数数组 gas 和 cost,如果你可以按顺而环招行驶一周,则返回出发时加油站的编号,否则返回-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可为起始索引。

解法1:暴力->枚举

1.依次枚举所有起点;

2.从起点开始,模拟一遍加油的流程即可

public class Solution1 {public int canCompleteCircuit(int[]gas,int[] cost){int n=gas.length;for(int i=0;i<n;i++)//依次枚举所有的起点{int rest=0;//统计净收益for(int step=0;step<n;step++)//枚举向后走的步数{int index=(i+step)%n;//走step不之后的下标rest=rest+gas[index]-cost[index];if(rest<0){break;}}if(rest>=0){return i;}}return -1;}public static void main(String[] args) {Solution1 solution1=new Solution1();int []gas={1,2,3,4,5};int []cost={3,4,5,1,2};System.out.println(solution1.canCompleteCircuit(gas,cost));}
}

解法2:贪心:时间复杂度O(n):

public class Solution2 {public int canCompleteCircuit(int[]gas,int[] cost){int n=gas.length;for(int i=0;i<n;i++)//依次枚举所有的起点{int rest=0;//统计净收益int step=0;for(;step<n;step++)//枚举向后走的步数{int index=(i+step)%n;//走step不之后的下标rest=rest+gas[index]-cost[index];if(rest<0){break;}}if(rest>=0){return i;}i=i+step;//贪心优化}return -1;}public static void main(String[] args) {Solution2 solution2=new Solution2();int []gas={1,2,3,4,5};int []cost={3,4,5,1,2};System.out.println(solution2.canCompleteCircuit(gas,cost));}}

相关文章:

贪心算法(11)(java)加油站

题目&#xff1a;在一条环路上有n个加油站&#xff0c;其中第i个加油站有汽油 gas[i]升.。 你有一辆油箱容量无限的的汽车&#xff0c;从第i个加油站开往第i1个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定…...

Python(4)Python函数编程性能优化全指南:从基础语法到并发调优

目录 一、Lambda性能优化原理1.1 内联执行优势1.2 并行计算加速 二、工程级优化策略2.1 内存管理机制2.2 类型提示增强 三、生产环境最佳实践3.1 代码可读性平衡3.2 异常处理模式 四、性能调优案例4.1 排序算法优化4.2 数据管道加速 五、未来演进方向5.1 JIT编译优化5.2 类型系…...

本地部署Stable Diffusion生成爆火的AI图片

直接上代码 Mapping("/send") Post public Object send(Body String promptBody) { JSONObject postSend new JSONObject(); System.out.println(promptBody); JSONObject body JSONObject.parseObject(promptBody); List<S…...

qiankun微前端的使用

qiankun使用时注意以下几个点 1&#xff0c;子应用项目框架&#xff08;react&#xff0c;vue&#xff09;使用的打包格式需要为 umd 格式 2&#xff0c;子应用项目最好配置不受同源策略&#xff08;跨域&#xff09;的影响 3&#xff0c;子应用最好使用的路由模式是 histor…...

从国家能源到浙江交通投资,全息技术在能源交通领域的创新应用

一、3D全息技术行业应用参数及设计制作要求 全息投影 全息投影技术通过激光器、全息片等设备&#xff0c;将物体的三维信息记录下来&#xff0c;并在特定条件下再现。应用参数包括投影距离、投影面积、投影亮度等。设计制作要求&#xff1a;高清晰度、高亮度、低噪音、稳定性好…...

PageHiOffice网页组件(WebOffice文档控件)开发集成技巧专题一

PageHiOffice网页组件作为最新一代的WebOffice文档控件&#xff0c;这是目前市场上唯一能做到在Chrome等最新版浏览器中实现内嵌网页运行的商用文档控件&#xff0c;是OA及ERP等系统处理各种文档的福音。从发布到完善已经超过3年&#xff0c;不管是功能性还是稳定性都已经有了长…...

【人工智能】机器学习中的评价指标

机器学习中的评价指标 在机器学习中&#xff0c;评估指标&#xff08;Evaluation Metrics&#xff09;是衡量模型性能的工具。选择合适的评估指标能够帮助我们更好地理解模型的效果以及它在实际应用中的表现。 一般来说&#xff0c;评估指标主要分为三大类&#xff1a;分类、…...

本地安装deepseek大模型,并使用 python 调用

首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步&#xff0c;就可以 点击搜索 Models &#xff1a; https://ollama.com/search然后点击下载&#xff1a; 选择后复制: ollama run deepseek-r1:32b例如&#xff1a; 让它安装完成后&#xff1…...

Android:蓝牙设置配套设备配对

一、概述 在搭载 Android 8.0&#xff08;API 级别 26&#xff09;及更高版本的设备上&#xff0c;配套设备配对会代表您的应用对附近的设备执行蓝牙或 Wi-Fi 扫描&#xff0c;而不需要 ACCESS_FINE_LOCATION 权限。这有助于最大限度地保护用户隐私。使用此方法执行配套设备&am…...

AI知识补全(二):提示工程(Prompting)是什么?

名人说:人生如逆旅,我亦是行人。 ——苏轼《临江仙送钱穆父》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(一):tokens是什么? 目录 一、什么是提示工程?二、为什么提示工程如此重要?三、核心提示工程技术1. 少样本学习(Few-Sho…...

Python 变量作用域、global 关键字与闭包作用域深度解析 第三部分

## 三、闭包作用域的存在原因及适用场景 ### 3.1 闭包作用域存在的原因 #### 3.1.1 数据封装与隐藏 闭包可以把数据封装在外部函数的作用域中&#xff0c;只有内部函数能够访问这些数据&#xff0c;这有助于实现数据的隐藏和保护。 python def counter(): count 0 def incre…...

zookeeper使用

下载 官网 链接 1. 2. 然后解压&#xff1a; 启动 先复制一份这个文件&#xff0c; 双击启动 默认占用8080&#xff0c;和Tomcat冲突&#xff0c; 解决方法&#xff1a;链接 然后重启...

【性能优化点滴】odygrd/quill 中一个简单的标记位作用--降低 IO 次数

在 StreamSink 类中&#xff0c;成员变量 _write_occurred 的作用是 跟踪自上次刷新&#xff08;Flush&#xff09;以来是否有写入操作发生&#xff0c;其核心目的是 优化 I/O 性能。以下是详细解析&#xff1a; _write_occurred 的作用 1. 避免不必要的刷新&#xff08;Flush…...

Java面试黄金宝典11

1. 什么是 JMM 内存模型 定义 JMM&#xff08;Java Memory Model&#xff09;即 Java 内存模型&#xff0c;它并非真实的物理内存结构&#xff0c;而是一种抽象的概念。其主要作用是规范 Java 虚拟机与计算机主内存&#xff08;Main Memory&#xff09;之间的交互方式&#x…...

使用BootStrap 3的原创的模态框组件,没法弹出!估计是原创的bug

最近在给客户开发一个CRM系统&#xff0c;其中用到了BOOTSTRAP的模态框。版本是3。由于是刚开始用该框架。所以在正式部署到项目中前&#xff0c;需要测试一下&#xff0c;找到框架中的如下部分。需要说明的是。我用的asp.net mvc框架开发。测试也是在asp.net mvc环境下。 复制…...

【Azure 架构师学习笔记】- Azure Networking(1) -- Service Endpoint 和 Private Endpoint

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Networking】系列。 前言 最近公司的安全部门在审计云环境安全性时经常提到service endpoint&#xff08;SE&#xff09;和priavate endpoint&#xff08;PE&#xff09;的术语&#xff0c;为此做了一些研究储备。 云…...

Excel第41套全国人口普查

2. 导入网页中的表格&#xff1a;数据-现有链接-考生文件夹&#xff1a;网页-找到表格-点击→变为√-导入删除外部链接关系&#xff1a;数据-点击链接-选中连接-删除-确定&#xff08;套用表格格式-也会是删除外部链接&#xff09;数值缩小10000倍&#xff08;除以10000即可&am…...

VUE2导出el-table数据为excel并且按字段分多个sheet

首先在根目录下建一个文件夹export用来存储export.js import * as XLSX from xlsxfunction autoWidthFunc(ws, data) {// 设置每列的最大宽度const colWidth data.map(row > row.map(val > {var reg new RegExp([\\u4E00-\\u9FFF], g) // 检测字符串是否包含汉字if (v…...

PDF文件转Markdown,基于开源项目marker

​ 首先我们来问下deepseek 为啥要选marker呢 基于深度学习&#xff0c;一看就逼格拉满。搞科研必备&#xff0c;效果应该不会太差。 看下官网 https://github.com/VikParuchuri/marker ​ 一看头像是个印度佬&#xff0c;自吹——又快又好。那就试试吧。 安装步骤 安装…...

深入理解 HTML5 Web Workers:提升网页性能的关键技术解析

深入理解 HTML5 Web Workers&#xff1a;提升网页性能的关键技术解析 引言1. 什么是 Web Workers&#xff1f;Web Workers 的特点&#xff1a; 2. Web Workers 的使用方式2.1 创建一个 Web Worker步骤 1&#xff1a;创建 Worker 文件步骤 2&#xff1a;在主线程中调用 Worker 3…...

【蓝桥杯速成】| 9.回溯升级

题目一&#xff1a;组合综合 问题描述 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返…...

【uni-app】引用公共组件

目录 一、建立公共组件 1.1新建vue文件 1.2编写公共文件代码 1.3使用 注意事项 一、建立公共组件 1.1新建vue文件 在公共组件文件目录下新建所需要的功能文件 1.2编写公共文件代码 按需求写对应功能的代码 1.3使用 在需要使用的文件下引用公共组件 注意事项 想要使用s…...

API-Arrays

Arrays 操作数组的工具类 1.tostring import java.util.Arrays;public class demo1 {public static void main(String[] args) {Integer[] arr {2, 3, 1, 5, 6, 7, 8, 4, 9};System.out.println(Arrays.toString(arr));//[2, 3, 1, 5, 6, 7, 8, 4, 9]} } 2.binarySearch 二…...

尝试在软考62天前开始成为软件设计师-信息系统安全

安全属性 保密性:最小授权原则(能干活的最小权限)、防暴露(隐藏)、信息加密、物理保密完整性(防篡改):安全协议、校验码、密码校验、数字签名、公证 可用性:综合保障( IP过滤、业务流控制、路由选择控制、审计跟踪)不可抵赖性:数字签名 对称加密 DES :替换移位 3重DESAESR…...

dsPIC33CK64MC105 Curiosity Nano|为高性能数字电源与电机控制而生

「dsPIC33CK64MC105 Curiosity Nano」面向高性能数字电源与电机控制而生 dsPIC33CK64MC105 Curiosity Nano 该评估套件是一个经济高效的硬件平台&#xff0c;用于评估dsPIC33CK系列高性能数字信号控制器&#xff08;DSC&#xff09;。该板采用 100 MHz dsPIC33CK64MC105 DSC&am…...

STM32学习笔记之常见外设汇总

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

.NET三层架构详解

.NET三层架构详解 文章目录 .NET三层架构详解引言什么是三层架构表示层&#xff08;Presentation Layer&#xff09;业务逻辑层&#xff08;Business Logic Layer&#xff0c;BLL&#xff09;数据访问层&#xff08;Data Access Layer&#xff0c;DAL&#xff09; .NET三层架构…...

《面向车险理赔的事故信息提取》开题报告

个人主页&#xff1a;大数据蟒行探索者 目录 一、选题的依据及意义 二、国内外研究概况及发展趋势 &#xff08;1&#xff09;车牌识别技术 &#xff08;2&#xff09;证件信息提取技术 &#xff08;3&#xff09;交通事故认定书文本提取 三、研究内容及实验方案 1.研究…...

算法刷题记录——LeetCode篇(7) [第601~700题](持续更新)

更新时间&#xff1a;2025-03-22 LeetCode刷题目录&#xff1a;算法刷题记录——专题目录汇总技术博客总目录&#xff1a;计算机技术系列博客——目录页 优先整理热门100及面试150&#xff0c;不定期持续更新&#xff0c;欢迎关注&#xff01; 601. 体育馆的人流量 表&#…...

【AI神经网络】深度神经网络(DNN)技术解析:从原理到实践

引言 深度神经网络&#xff08;Deep Neural Network, DNN&#xff09;作为人工智能领域的核心技术&#xff0c;近年来在计算机视觉、自然语言处理、医疗诊断等领域取得了突破性进展。与传统机器学习模型相比&#xff0c;DNN通过多层非线性变换自动提取数据特征&#xff0c;解决…...