从零学算法2105

2105. 给植物浇水 II
Alice 和 Bob 打算给花园里的 n 株植物浇水。植物排成一行,从左到右进行标记,编号从 0 到 n - 1 。其中,第 i 株植物的位置是 x = i 。
每一株植物都需要浇特定量的水。Alice 和 Bob 每人有一个水罐,最初是满的 。他们按下面描述的方式完成浇水:
Alice 按 从左到右 的顺序给植物浇水,从植物 0 开始。Bob 按 从右到左 的顺序给植物浇水,从植物 n - 1 开始。他们 同时 给植物浇水。
无论需要多少水,为每株植物浇水所需的时间都是相同的。
如果 Alice/Bob 水罐中的水足以 完全 灌溉植物,他们 必须 给植物浇水。否则,他们 首先(立即)重新装满罐子,然后给植物浇水。
如果 Alice 和 Bob 到达同一株植物,那么当前水罐中水 更多 的人会给这株植物浇水。如果他俩水量相同,那么 Alice 会给这株植物浇水。
给你一个下标从 0 开始的整数数组 plants ,数组由 n 个整数组成。其中,plants[i] 为第 i 株植物需要的水量。另有两个整数 capacityA 和 capacityB 分别表示 Alice 和 Bob 水罐的容量。返回两人浇灌所有植物过程中重新灌满水罐的 次数 。
示例 1:
输入:plants = [2,2,3,3], capacityA = 5, capacityB = 5
输出:1
解释:
- 最初,Alice 和 Bob 的水罐中各有 5 单元水。
- Alice 给植物 0 浇水,Bob 给植物 3 浇水。
- Alice 和 Bob 现在分别剩下 3 单元和 2 单元水。
- Alice 有足够的水给植物 1 ,所以她直接浇水。Bob 的水不够给植物 2 ,所以他先重新装满水,再浇水。
所以,两人浇灌所有植物过程中重新灌满水罐的次数 = 0 + 0 + 1 + 0 = 1 。
示例 2:
输入:plants = [2,2,3,3], capacityA = 3, capacityB = 4
输出:2
解释:
- 最初,Alice 的水罐中有 3 单元水,Bob 的水罐中有 4 单元水。
- Alice 给植物 0 浇水,Bob 给植物 3 浇水。
- Alice 和 Bob 现在都只有 1 单元水,并分别需要给植物 1 和植物 2 浇水。
- 由于他们的水量均不足以浇水,所以他们重新灌满水罐再进行浇水。
所以,两人浇灌所有植物过程中重新灌满水罐的次数 = 0 + 1 + 1 + 0 = 2 。
示例 3:
输入:plants = [5], capacityA = 10, capacityB = 8
输出:0
解释:
- 只有一株植物
- Alice 的水罐有 10 单元水,Bob 的水罐有 8 单元水。因此 Alice 的水罐中水更多,她会给这株植物浇水。
所以,两人浇灌所有植物过程中重新灌满水罐的次数 = 0 。
提示:
n == plants.length
1 <= n <= 105
1 <= plants[i] <= 106
max(plants[i]) <= capacityA, capacityB <= 109

  • 双指针:模拟题,用 a,b 记录两人剩余水量,双向遍历时遇到同一植物则按照规挑人浇水,如果需要灌水就灌水;否则就各自看是否需要先灌水再浇水
  •   public int minimumRefill(int[] plants, int capacityA, int capacityB) {int res = 0;int a = capacityA, b = capacityB;for(int left = 0, right = plants.length - 1; left <= right; left++, right--){if(left == right){int max = Math.max(a, b);res += max < plants[left] ? 1 : 0;}else{int plantA = plants[left], plantB = plants[right];if(plantA > a){res++;a = capacityA;}a -= plantA;if(plantB > b){res++;b = capacityB;}b -= plantB;}}return res;}
    

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

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

相关文章

如何在湖师大官网找到考研真题

今天学弟问我怎么找真题&#xff0c;我必须告诉他怎么找湖师大的真题&#xff0c;身为考研学子&#xff0c;这是必须要知道滴&#xff0c;尤其是自命题&#xff0c;是吧&#xff0c;话不多说&#xff0c;言归正传&#xff0c;我们开始吧&#xff01; 1 打开湖师大官网 什么&a…

树莓派nmap扫描

debian系统安装nmap&#xff1a; sudo apt install nmap安装nmap完成后&#xff0c;输入 ip route 来查看当前Wi-Fi路由器的ip地址。 第一行的default via后显示的便是网关地址&#xff0c;也就是路由器地址。 获取到路由器ip地址后&#xff0c;在终端中输入&#xff1a; …

一站式HMI软件开发套件eStation,让开发更简单高效

4月份举办的北京国际车展上全球首发车117辆&#xff0c;新能源车型278个&#xff0c;越来越多的车厂通过差异化和改善UI/UE体验&#xff0c;来获取更多用户的青睐。为快速响应差异化竞争需求&#xff0c;智能座舱HMI市场遇到以下挑战&#xff1a; 如何兼容不同项目开发人员编程…

C# 使用SendMessage进行进程通信,可发送字符串,结构体

发送时只能以结构体形式发送&#xff0c;类的话会提示“指定结构必须能直接复制到本机结构中&#xff0c;或是具有布局信息 ”的错误提示 以下两种结构体示例都可以被发送 public struct A{public A(int a){name "heow";array new double[3] { 1, 2, 5.6 };}strin…

批量为本地视频生成字幕文件,并可将字幕文件翻译成其它语言

VideoSubtitleGenerator 批量为本地视频生成字幕文件&#xff0c;并可将字幕文件翻译成其它语言 本项目基于 macOS, node 环境运行&#xff0c;暂未兼容 windows 环境 &#x1f310;Github地址 https://github.com/buxuku/VideoSubtitleGenerator 初衷 自己有一大批外文视频&…

力扣例题(用栈实现队列)

目录 链接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push pop peek empty 代码 链接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push 例如我们将10个元素放入栈中&#xff0c;假设最左边为栈顶&#xff0c;最右侧为栈底 则为10,9,8,7,6,5,4,3,…

嵌入式 - GPIO编程简介

An Introduction to GPIO Programming By Jeff Tranter Wednesday, June 12, 2019 编者按&#xff1a;本 2019 年博客系列是 ICS 最受欢迎的系列之一&#xff0c;现已更新&#xff08;2022 年 12 月&#xff09;&#xff0c;以确保内容仍然准确、相关和有用。 本博客是 Integr…

实体类和Entity Class之间有什么联系

实体类&#xff08;Entity Class&#xff09;和Entity Class在本质上是相同的&#xff0c;它们都是面向对象编程&#xff08;OOP&#xff09;中用于表示具有业务逻辑意义的实体的类。 具体来说&#xff0c;实体类通常被设计用于代表真实世界中的对象或概念&#xff0c;这些对象…

PWRWER

编译烧录完代码之后&#xff0c;按下复位键屏幕会进行刷新&#xff0c;数据不会丢失 如果按下按键&#xff0c;进行页擦除&#xff0c;之后再按下复位键&#xff0c;发现屏幕不会再进行刷新&#xff0c;原因是程序已经被擦除&#xff0c;损毁&#xff0c;无法运行&#xff0c;此…

2024OD机试卷-查找接口成功率最优时间段 (java\python\c++)

题目:查找接口成功率最优时间段 题目描述 服务之间交换的接口成功率作为 服务调用 关键质量特性,某个时间段内的接口失败率使用一个数组表示, 数组中每个元素都是单位时间内失败率数值,数组中的数值为0~100的整数, 给定一个数值(minAverageLost)表示某个时间段内平均失败…

图片转word如何转换?

要将图片转换为Word文档&#xff0c;你可以使用以下方法之一&#xff1a; 以上这些方法都可以帮助你将图片中的文本转换为可编辑的Word文档&#xff0c;你可以根据自己的喜好和需求选择其中一种方法来操作。 使用OCR软件或在线工具&#xff1a;有许多OCR&#xff08;Optical Ch…

【数据库】为何选择B+树作为索引?与红黑树、B树的对比

摘要&#xff1a; 数据库索引是数据库系统中至关重要的组成部分&#xff0c;影响着数据检索的效率和性能。本文将探讨为何数据库选择B树作为索引的原因&#xff0c;并分别分析红黑树和B树在此场景中的劣势。 介绍&#xff1a; 数据库索引是数据库系统中的重要组成部分&#xf…

实战LangChain(六):深入LangGraph的高级功能与最佳实践

实战LangChain(六):深入LangGraph的高级功能与最佳实践 实战LangChain(一):构建您的第一个聊天机器人_langchai 机器人 实战LangChain(二):探索RAG——为聊天机器人注入知识-CSDN博客 实战LangChain(三):深化交互——利用Neo4j提升聊天机器人的对话能力 实战La…

电子资源|基于SSM+vue的电子资源管理系统(源码+数据库+文档)​

电子资源管理系统 目录 基于SSMvue的电子资源管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 5.2.1管理员功能模块 5.2.2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&am…

【Qt 学习笔记】Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍 文章编号&#x…

python代码实现TF-IDF

1、TF-IDF解释 TF-IDF&#xff08;Term frequency–inverse document frequency&#xff09;&#xff0c;中文翻译就是词频 - 逆文档频率&#xff0c;是一种用来计算关键词的传统方法。 TF&#xff08;Term Frequency&#xff09;&#xff1a;TF 的意思就是词频&#xff0c;是…

云计算的优势与未来发展

随着数字化转型的蓬勃发展&#xff0c;云计算作为信息技术应用的基础设施&#xff0c;逐渐成为企业的首选。云计算以其诸多优势和未来发展趋势&#xff0c;为企业带来了更高效、灵活和创新的IT解决方案&#xff0c;助力企业实现数字化转型和业务发展。 云计算的优势 首先&…

C#中的隐式类型转换和显式类型转换

在C#中&#xff0c;类型转换分为隐式类型转换&#xff08;Implicit Type Conversion&#xff09;和显式类型转换&#xff08;Explicit Type Conversion&#xff09;&#xff0c;也称为隐式转换和强制转换。 隐式类型转换&#xff08;Implicit Type Conversion&#xff09; 隐…

SQL Server共享功能目录显示灰色无法自行选择

SQL Server共享功能目录显示灰色无法自行调整 一、 将之前安装SQL Server卸载干净 二、 清空注册表 1. 打开注册表&#xff0c;winR&#xff0c;输入regedit 2. 注册表-》编辑-》查找&#xff0c;输入C:\Program Files\Microsoft SQL Server\ 3. 注册表-》编辑-》查找&#x…

算法小记(二分)

题目描述: 输入 &#x1d45b;n 个不超过 109109 的单调不减的&#xff08;就是后面的数字不小于前面的数字&#xff09;非负整数 &#x1d44e;1,&#x1d44e;2,…,&#x1d44e;&#x1d45b;a1​,a2​,…,an​&#xff0c;然后进行 &#x1d45a;m 次询问。对于每次询问&a…