【Leetcode 42】 接雨水

基础思路:

(1)需要将问题最小化,首先计算第i个位置最多容纳多少雨水(细长的一条水柱),然后求和就是总的雨水量;

(2)第i个位置容纳雨水量 = min(左侧最高, 右侧最高) - height[i]

进一步的:

问题转化成了,如何用最短时间计算所有位置左侧最高点和右侧最高点,这是一个简单的动态规划问题,时间复杂度O(n)

public static int trap(int[] height) {int n = height.length;int result = 0;int[] lh = new int[n];int[] rh = new int[n];//计算左侧最高点int maxHeight = 0;for (int i = 1; i < n; i++) {if (height[i-1] > maxHeight) {maxHeight = height[i-1];}lh[i] = maxHeight;}//计算右侧最高点maxHeight = 0;for (int i = n-2; i >= 0; i--) {if (height[i+1] > maxHeight) {maxHeight = height[i+1];}rh[i] = maxHeight;}//计算每个位置的水柱,求和for (int i = 0; i < n; i++) {int wall = lh[i] > rh[i] ? rh[i] :lh[i];if (wall <= height[i]) {continue;}result += (wall - height[i]);}return result;}

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

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

相关文章

计算机组成结构—高速缓冲存储器(Cache)

目录 一、Cache的基本工作原理 1.Cache工作原理 2.命中率 3.Cache的基本结构 4.Cache的改进 二、Cache和主存之间的映射方式 1.直接映射 2.全相联映射 3.组相联映射 三、Cache中主存块的替换算法 四、Cache的写策略 概为了解决 CPU 和主存之间速度不匹配的问题&#x…

达梦主从数据库实例恢复

测试环境&#xff1a;实时主备数据库 1、在节点1向测试表aaa插入数据 如图可见&#xff0c;会话139695153554808向aaa表插入了10000行数据。事务id460520。 2、提交前在另一个窗口kill掉dmserver进程。 3、查看节点2的数据库日志 上图可见&#xff0c;系统执行alter database…

Docker网络基础

简介 Docker 本身的技术依赖于近年来 Linux 内核虚拟化技术的发展,Docker 对 Linux 内核的特性有很强的依赖。Docker 使用到的与 Linux 网络有关的主要技术有:网络命名空间、veth 设备对、网桥、ipatables 、路由。 网络命名空间 为了支持网络协议栈的多个实例,Linux在网络栈…

2024广州高端房产/留学移民/海外院校/国际教育展

2024广州海外置业移民留学展览会 The 7th Guangzhou Overseas Real Estate Immigrant Study Exhibition 2024年7月27日-28日 27th-28th July, 2024 广州保利世贸博览馆&#xff08;海珠区新港东路1000号&#xff09; Guangzhou Poly World Trade …

【ARM 嵌入式 C 字符串系列 23.8 -- 判断一个字符串是否是数值字符串】

请阅读【嵌入式开发学习必备专栏 】 文章目录 判断一个字符串是否是数值字符串 判断一个字符串是否是数值字符串 为了判断一个字符串是否是数值字符串&#xff0c;包括十进制和十六进制&#xff0c;可以实现一个函数is_numeric_string。在这个函数中&#xff0c;将遵循以下步骤…

LSTM实战笔记(部署到C++上)——更新中

前几天由于自己的个人原因停止了学习 接下里继续更新一些自己项目中所用到的神经网络等 ——————————————————————————————————————————— LSTM代码介绍 建立LSTM模型时需要设置一些参数&#xff0c;包括输入数据的形状、LSTM层的…

代码随想录35期Day31-Java

Day31题目 LeetCode455.分发饼干 核心思想&#xff1a;将两个数组排序&#xff0c;计算饼干遍历完能有几个大于需求的个数 class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int i 0 ;int j 0;int count 0 ;while(i &l…

Array.from()详解

Array.from() 是 JavaScript 中的一个静态方法&#xff0c;用于从一个类似数组或可迭代对象&#xff08;如 Set, Map 的迭代器&#xff0c;或者字符串、类数组对象等&#xff09;创建一个新的、浅拷贝的数组实例。 语法 Array.from(arrayLike, [mapFunction, [thisArg]])arra…

数据分析师方差分析,单因素方差分析、多因素方差分析、协方差分析和重复测量方差分析,医学数据分析spss

单因素方差分析、多因素方差分析、协方差分析和重复测量方差分析在统计学中各有其特定的适用场景。 单因素方差分析&#xff08;One-way ANOVA&#xff09;&#xff1a;适用于检验单因素水平下的一个或多个独立因变量均值是否存在显著差异&#xff0c;即检验单因素各个水平的值…

锂电池SOH估计 | Matlab实现基于ALO-SVR模型的锂电池SOH估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池SOH估计 | Matlab实现基于ALO-SVR模型的锂电池SOH估计 蚁狮优化支持向量机锂电池健康状态SOH估计&#xff1b; 具体流程如下&#xff1b; 1、分析锂离子电池老化数据集&#xff0c;从中选取具有代表电池性能衰减…

dumpsys meminfo 流程中细节

源码基于&#xff1a;Android U 参考&#xff1a; dumpsys meminfo 详解(R) dumpsys meminfo 详解(U) 1. 命令入口 MemBinder frameworks/base/services/core/java/com/android/server/am/AMS.javastatic class MemBinder extends Binder {ActivityManagerService mActivity…

vue实现复制功能详解(使用v-clipboard)

目录 1 前言2 使用2.1 安装2.2 使用2.2.1复制静态的值2.2.2复制动态的变量2.2.3 在方法中使用2.2.4 复制成功失败事件 1 前言 v-clipboard 是一个与 Vue.js 相关的指令或功能&#xff0c;它通常与剪贴板操作结合使用。在 Vue.js 中&#xff0c;v-clipboard 可以用于将文本或其…

python 中如何匹配字符串

python 中如何匹配字符串&#xff1f; 1. re.match 尝试从字符串的起始位置匹配一个模式&#xff0c;如果不是起始位置匹配成功的话&#xff0c;match()就返回none。 import re line"this hdr-biz 123 model server 456" patternr"123" matchObj re.matc…

一键安装Halo DB

说明 这里说的一键其实分了好几步&#xff0c;是我将安装步骤分解。你可以把它们放在一个shell中或者串起来就是一键了。 易景科技的数据库 羲和 &#xff08;Halo DB&#xff09; 我之前的一位朋友&#xff08;章晨曦&#xff09;创立的数据库公司。以前看他朋友圈说他做数…

私域流量引流方式有哪些?

私域流量引流的方法无非是营销渠道投放、各平台KOL投放、自有自媒体平台账号内容引流、线下引流、老客户转介绍裂变等几个方面&#xff0c;下面对各种不同方法进行简单介绍。 1、营销渠道投放&#xff1a;选择广点通、粉丝通、某些app的信息流和dou等大平台自带的推广渠道工具…

音频文件分析-- whisper(python 文档解析提取)

使用whisper转文本&#xff0c;这里使用的是large-v3版本 pip install githttps://github.com/openai/whisper.git import whisper import os from tqdm import tqdmmodel whisper.load_model("large-v3")path "rag_data" for fi in tqdm(os.listdir(pa…

npy文件如何追加数据?

.npy 文件是 NumPy 库用于存储数组数据的二进制格式&#xff0c;它包含一个描述数组结构的头部信息和实际的数据部分。直接追加数据到现有的 .npy 文件并不像文本文件那样直接&#xff0c;因为需要手动修改文件头部以反映新增数据后的数组尺寸&#xff0c;并且要确保数据正确地…

创新指南|非凡时代的变革型领导力——五个领导力差异化优势将使高管能够重塑他们的组织

大多数商界领袖现在都明白&#xff0c;我们正在经历一场“伟大的重构”&#xff0c;整个行业、经济和社会都在重塑的时期。然而&#xff0c;考虑到他们面临的短期压力&#xff0c;很少有高管发现自己能够真正应对这些变化&#xff0c;这些变化对他们的组织所需的转型意味着什么…

智能BI产品设计

BI概念 目录 BI概念 一&#xff1a;与BI相关的几个重要概念 二&#xff1a;数据仓库 VS 数据库 BI架构 一&#xff1a;数据分析通用流程 二&#xff1a;BI平台基本架构 可视化图形 一&#xff1a;如何选择可视化图形 二&#xff1a;数据展示形式 三&#xff1a;数据…

JAVA学习14——异常

目录 异常&#xff1a; 1.异常基本介绍&#xff1a; 2.异常体系图&#xff1a; 3.五大运行时异常&#xff1a; &#xff08;1&#xff09;NullPointerException空指针异常&#xff1a; &#xff08;2&#xff09;AirthmetiException数字运算异常&#xff1a; &#xff0…