当前位置:网站首页>【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) 的额外空间。
边栏推荐
猜你喜欢
[Teach you how to make a small game] Write a function with only a few lines of native JS to play sound effects, play BGM, and switch BGM
MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
stm32中的CAN通讯列表模式配置解析与源码
[教你做小游戏] 只用几行原生JS,写一个函数,播放音效、播放BGM、切换BGM
多种深度模型实现手写字母MNIST的识别(CNN,RNN,DNN,逻辑回归,CRNN,LSTM/Bi-LSTM,GRU/Bi-GRU)
【深度学习前沿应用】图像风格迁移
友邦人寿可观测体系设计与落地
set和map使用讲解
servlet映射路径匹配解析
云渲染的应用正在扩大,越来越多的行业需要可视化服务
随机推荐
【自然语言处理】【向量表示】PairSupCon:用于句子表示的成对监督对比学习
flex&bison系列第一章:flex Hello World
工业基础类—利用xBIM提取IFC几何数据
JVM内存和垃圾回收-11.执行引擎
『牛客|每日一题』岛屿数量
智能安防产品公司及产品
QoS服务质量六路由器拥塞管理
120Hz OLED拒绝“烧屏”!华硕无双全能轻薄本
803. 区间合并(贪心)左端点、右端点排序均可
[Teach you how to make a small game] Write a function with only a few lines of native JS to play sound effects, play BGM, and switch BGM
【Knowledge Sharing】What is SEI in the field of audio and video development?
产品思维训练 | 新用户从注册到绑卡流失率很高是什么原因?
StoneDB 文档捉虫活动第一季
flask生成路由的2种方式和反向生成url
JVM基本结构
VoLTE基础自学系列 | 3GPP规范解读之Rx接口(上集)
新建离线同步节点时选择数据去向-表时报错,数据库类型是adb pg,怎么办?
postgis空间数据导入及可视化
redis 事件
websocket校验token:使用threadlocal存放和获取当前登录用户