力扣LCP 33. 蓄水
LCP 33. 蓄水
给定 N 个无限容量且初始均空的水缸,每个水缸配有一个水桶用来打水,第 i 个水缸配备的水桶容量记作 bucket[i]。有以下两种操作:
升级水桶:选择任意一个水桶,使其容量增加为 bucket[i]+1
蓄水:将全部水桶接满水,倒入各自对应的水缸
每个水缸对应最低蓄水量记作 vat[i],返回至少需要多少次操作可以完成所有水缸蓄水要求。
注意:实际蓄水量 达到或超过 最低蓄水量,即完成蓄水要求。
示例 1:
输入:bucket = [1,3], vat = [6,8]
输出:4
解释:
第 1 次操作升级 bucket[0];
第 2 ~ 4 次操作均选择蓄水,即可完成蓄水要求。
分析
1.找到最低蓄水量中的最大值max。
2.首先最低蓄水量中的最大值为0的话,那么就不用蓄水返回为0.
3.如果不为0,那么就枚举蓄水的次数,蓄水次数范围是[1,max],我们需要求出每次蓄水次数操作中,每个水桶升级的次数并累加。(vat[j] + x - 1) / x - bucket[j]这段代码表示当前木桶升级的次数,本来是vat[j]/ x - bucket[j],vat[j]/ x表示每次最小水桶容量多少,减去水缸的最低蓄水量就算到了升级次数,但是vat[j]除x有小数的话,vat[j]/ x就只会要整数部分而且我们只能升级加1,而不能加小数,所有我们只能大于等于每次最小水桶容量,所以是这种形式:(vat[j] + x - 1) / x它会向上取整。
4.蓄水次数我们从1遍历到max,比较得出所有蓄水次数操作中:x+y的最小值,即是答案。(x是每次蓄水次数,y是升级的次数)
5.大致意思就是:比如是在蓄水次数为2的时候,我们需要将水桶往水缸里面倒2次水倒入的水可以大于等于水缸的最低蓄水量,要满足这个条件我们需要给一些水桶升级,将所有升级的次数累加,在加上当前的蓄水次数,就是当前的操作总和。其他次数操作相同,然后比较得出最小值吗,得出答案。
运行代码
class Solution {public int storeWater(int[] bucket, int[] vat) {int ans=1<<30;//找出最低蓄水量中最大的值int max= Arrays.stream(vat).max().getAsInt();//如果最低蓄水量之中最大的为0,那么不用蓄水if (max==0){return 0;}//枚举蓄水的次数for (int x =1; x <=max; x++) {int y=0;for (int j = 0; j <vat.length ; j++) {//每个水桶的升级次数累加y += Math.max(0, (vat[j] + x - 1) / x - bucket[j]);}//找出蓄水次数x和升级次数y和的最小值ans=Math.min(ans,x+y);}return ans;}
}
运行结果
相关文章:

力扣LCP 33. 蓄水
LCP 33. 蓄水 给定 N 个无限容量且初始均空的水缸,每个水缸配有一个水桶用来打水,第 i 个水缸配备的水桶容量记作 bucket[i]。有以下两种操作: 升级水桶:选择任意一个水桶,使其容量增加为 bucket[i]1 蓄水࿱…...
内网渗透(八十一)之搭建Exchange服务器
搭建Exchange服务器 环境安装准备 1、Windows Server 2012 R2以管理员身份运行Windows Powershell,安装必需的 Windows组件: Install-WindowsFeature NET-Framework-45-Features, Server-Media-Foundation, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInt…...

web缓存Squid代理服务
缓存网页对象,减少重复请求 squid代理服务器,主要提供缓存加速,应用层过滤控制的功能 代理工作机制 1.代替客户机向网站请求数据,从而可以隐藏用户的真实ip地址 2.将获得的网页数据(静态web元素)保存到缓…...

vue实现聊天框自动滚动
需求 1、聊天数据实时更新渲染到页面 2、页面高度随聊天数据增加而增加 3、竖向滚动 4、当用户输入聊天内容或者接口返回聊天内容渲染在页面后,自动滚动到底部 5、提供点击事件操控滚动条上下翻动 环境依赖 vue:vue…...
项目中遇到的一些问题总结(六)
Minio Minio是一个开源的分布式对象存储系统,它使用纠删码技术来保护数据。纠删码技术是一种恢复丢失和损坏数据的数学算法,它将数据分块冗余的分散存储在各个节点的磁盘上,从而提供了一定程度的数据可靠性和冗余性。 在Minio中,…...

Linux线程5——生产消费模型
生产消费模型 1个交易场所:超市 2种角色:生产者/消费者 3种关系:生产者和生产者(竞争关系也叫互斥关系),消费者和消费者(竞争关系同样是互斥关系),生产者和消费者(互斥,同步关系:生产完再消费或消费完再生产)。 以上是生产消费模型遵守的“321”原则。 生产者和消…...
Vue + Springboot 文件上传项目笔记(一)
Vue Springboot 文件上传项目笔记(一) 前端 使用脚手架创建项目 vue create vue_fileuploaddemo等待命令执行完毕添加 element-ui 组件 E:\java\idea_java_maven\vue_fileuploaddemo>yarn add element-ui yarn add v1.22.19 [1/4] Resolving pac…...
【华为OD机试真题2023B卷 JAVA】座位调整
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 座位调整 知识点迭代 时间限制:1s 空间限制:256MB 限定语言:C(clang11), C++(clang++11), Java(javac 1.8), Python3(3.9), JavaScript Node(12.18.2), Go(1.14.4) 题目描述: 疫情期间课堂的座位进行了特殊的调整,不能出…...

Python 学习 2022.08.28 周日
文章目录 一、 概述1.1) 之前写的文章:1.2) 基础点1.3) 配置1.4) Python2 和 Python3 的区别1.5) 相关问题跟踪解决1.6) 其他 一、 概述 1.1) 之前写的文章: 【Python大系】Python快速教程《Python 数据库 GUI CGI编…...

WEB自动化测试,一定得掌握的8个核心知识点
编辑 写在前面 使用 cypress 进行端对端测试,和其他的一些框架有一个显著不同的地方,它使用 JavaScript 作为编程语言。 传统主流的 selenium 框架是支持多语言的,大多数 QA 会的 python 和 Java 语言都可以编写 selenium 代码࿰…...

期末复习总结!!【MySQL】库和表的基本操作 + 增删改查CURD
文章目录 前言一、数据库的基本操作1, 查看库2, 创建库3, 使用库4, 删除库 二、表的基本操作1, 创建表2, 查看表3, 查看表结构4, 删除表 三、增加(Create)四、查询(Retrieve) (重点)1, 全列查询2, 指定列查询3, 查询字段为表达式4, 指定别名5, 去重6, 排序7, 条件查询7.1, 基本…...

线上问题处理案例:出乎意料的数据库连接池 | 京东云技术团队
导读 本文是线上问题处理案例系列之一,旨在通过真实案例向读者介绍发现问题、定位问题、解决问题的方法。本文讲述了从垃圾回收耗时过长的表象,逐步定位到数据库连接池保活问题的全过程,并对其中用到的一些知识点进行了总结。 一、问题描述…...

有了 IP 地址,为什么还要用 MAC 地址?
MAC地址等价于快递包裹上的收件人姓名。 MAC地址更多是用于确认对方信息而存在的。就如同快递跨越几个城市来到你面前,快递员需要和你确认一下收件人是否正确,才会把包裹交给你一样。 IP66在线查IP地址位置:https://www.ip66.net/?utm-sour…...

ChatGPT 推出 iOS 应用,支持语音输入,使用体验如何?
最近,OpenAI 宣布推出官方 iOS 应用,允许用户随时随地访问其高人气 AI 聊天机器人,此举也打破了近几个月内苹果 App Store 上充斥似是而非的山寨服务的窘境。 该应用程序是 ChatGPT 的首个官方移动应用程序。ChatGPT 软件程序在去年推出后迅速…...

【科普】干货!带你从0了解移动机器人(二)—— 移动机器人硬件组成
移动机器人是一个多功能于一体的综合系统,内容涵盖了传感器技术、自动化技术、信息处理、电子工程等,它集环境感知、动态决策与规划于一体,是目前科学技术发展最活跃的领域之一。移动机器人的各种组件之间需要协同工作才能实现机器人的自主移…...

WIN提权 令牌窃取进程注入
令牌窃取(鸡肋玩意 2008包括2008以下) 令牌,又叫token,是系统临时产生的秘钥,相当于账号密码,用来决定是否允许此次请求和判断此次请求是属于哪一个用户。 win7一下的版本可以尝试 这里使用msf上自带的令…...
CSS 提高性能的方法,并提供一些实用的技巧和代码示例
CSS 是前端开发中不可或缺的一部分,它负责网页的样式和布局。随着网站规模和复杂度的增加,CSS 的性能也变得越来越重要。本文将介绍 CSS 提高性能的方法,并提供一些实用的技巧和代码示例。 使用压缩后的 CSS 文件 压缩 CSS 文件可以减小文件…...

程序员:面试造火箭,入职拧螺丝?太难了···
刚开始工作的时候,我也想不通这个问题,甚至很鄙视这种现象。后面当了面试官,做到了公司中层管理,也会站在公司以及行业角度去重新思考这个问题。 为什么这种现象会越来越普遍呢?尤其在 IT 行业愈加明显。 面试看的是…...

pg事务:隔离级别历史与SSI
事务隔离级别的历史 ANSI SQL-92定义的隔离级别和异常现象确实对数据库行业影响深远,甚至30年后的今天,绝大部分工程师对事务隔离级别的概念还停留在此,甚至很多真实的数据库隔离级别实现也停留在此。但后ANSI92时代对事物隔离有许多讨论甚至…...
【滑动窗口】【单调队列】个人练习-Leetcode-2373. Largest Local Values in a Matrix
题目链接:https://leetcode.cn/problems/largest-local-values-in-a-matrix/ 题目大意:给出一个N*N矩阵,要求做池化操作,选出每个3*3矩阵的最大值,返回一个(N-2)*(N-2)矩阵 思路:这是个简单题,…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...