当前位置:网站首页>【LeetCode】42、接雨水
【LeetCode】42、接雨水
2022-08-10 18:42:00 【小曲同学呀】
42、接雨水
题目:
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。
示例2:
输入:height = [4,2,0,3,2,5]
输出:9
提示:
n == height.length
1 <= n <= 2 * 10^4
0 <= height[i] <= 10^5
解题思路:
暴力拆解:
直接按问题描述进行。对于数组中的每个元素,我们找出下雨后水能达到的最高位置,等于两边最大高度的较小值减去当前高度的值。
- 初始化
ans=0 - 从左向右扫描数组
- 初始化
max_left=0 和max_right=0 - 从当前元素向左扫描并更新:
max_left=max(max_left,height[j]) - 从当前元素向右扫描并更新:
max_right=max(max_right,height[j])- 将
min(max_left,max_right)−height[i]累加到ans
public int trap(int[] height) {
int ans = 0;
int size = height.length;
for (int i = 1; i < size - 1; i++) {
int max_left = 0, max_right = 0;
for (int j = i; j >= 0; j--) {
//Search the left part for max bar size
max_left = Math.max(max_left, height[j]);
}
for (int j = i; j < size; j++) {
//Search the right part for max bar size
max_right = Math.max(max_right, height[j]);
}
ans += Math.min(max_left, max_right) - height[i];
}
return ans;
}
复杂性分析:
时间复杂度: O(n^2)。数组中的每个元素都需要向左向右扫描。
空间复杂度 O(1) 的额外空间。

边栏推荐
- [Go WebSocket] 你的第一个Go WebSocket服务: echo server
- 位算符详解 按位与、或、异或、取反、左移、右移
- Major upgrade of MSE Governance Center - Traffic Governance, Database Governance, Same AZ Priority
- 入门:人脸专集2 | 人脸关键点检测汇总(文末有相关文章链接)
- FPGA工程师面试试题集锦91~100
- 如何通过JMobile软件实现虹科物联网HMI/网关的报警功能?
- 【greenDao】Cannot access ‘org.greenrobot.greendao.AbstractDaoSession‘ which is a supertype of
- AIRIOT答疑第8期|AIRIOT的金字塔服务体系是如何搞定客户的?
- LeetCode·283.移除零·双指针
- FPGA工程师面试试题集锦71~80
猜你喜欢

弘玑Cyclone与风变科技达成战略合作:优势互补聚焦数字化人才培养

罗克韦尔Rockwell Automation EDI 项目

Redis persistence mechanism

Interface test advanced interface script using -apipost (pre/post execution script)

【OpenCV】-物体的凸包
Three schemes of SQL query across the table

【自然语言处理】【向量表示】PairSupCon:用于句子表示的成对监督对比学习

servlet映射路径匹配解析

从企业的视角来看,数据中台到底意味着什么?
![[Image dehazing] Image dehazing based on color attenuation prior with matlab code](/img/ae/d6d36671804fadae548464496f28d6.png)
[Image dehazing] Image dehazing based on color attenuation prior with matlab code
随机推荐
人生苦短,开始用go
800. 数组元素的目标和(双指针)
服务器上行带宽和下行带宽指的是什么
mysql 中大小写问题
flex&bison系列第一章:flex Hello World
罗克韦尔Rockwell Automation EDI 项目
Redis persistence mechanism
多种深度模型实现手写字母MNIST的识别(CNN,RNN,DNN,逻辑回归,CRNN,LSTM/Bi-LSTM,GRU/Bi-GRU)
「POJ 3666」Making the Grade 题解(两种做法)
CAS:190598-55-1_Biotin sulfo-N-hydroxysuccinimide ester生物素化试
FPGA工程师面试试题集锦61~70
Keil5退出仿真调试卡死的解决办法
pytorch使用Dataloader加载自己的数据集train_X和train_Y
剑指 Offer II 034. 外星语言是否排序-辅助数组法
如何通过JMobile软件实现虹科物联网HMI/网关的报警功能?
MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
JSON serialization and deserialization using Jackson API in Scala
FPGA工程师面试试题集锦101~110
谈谈宝石方块游戏中的设计
Introduction to 3 d games beginners essential 】 【 modeling knowledge