【LeetCode - 42. 接雨水】
42. 接雨水
难度困难3164
给定 n
个非负整数表示每个宽度为 1
的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
示例 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 * 104
0 <= height[i] <= 105
解题报告:
维护前缀max和后缀max求解,空间复杂度是On的。
然后经典用双指针优化空间复杂度到O1.
把这个题和zyb证明法的那个题结合起来看看,都是证明双指针的正确性的。
AC代码:
class Solution {
public:/*** max water* @param arr int整型vector the array* @return long长整型*/long long maxWater(vector<int>& arr) {// write code hereint n = arr.size();vector<int> lmx(n+1,0), rmx(n+1,0);for(int i = 0; i<n; i++) {lmx[i] = max(lmx[i-1], arr[i]);}for(int i = n-1; i>=0; i--) {rmx[i] = max(rmx[i+1], arr[i]);}long long ans = 0;for(int i = 0; i<n; i++) {ans += min(lmx[i], rmx[i]) - arr[i];}return ans;}
};
【LeetCode - 42. 接雨水】相关推荐
- LeetCode 42. 接雨水(双指针、单调栈)
文章目录 1. 题目 2. 解题 2.1 正反扫描法 2.2 双指针 2.3 单调栈 1. 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上 ...
- 使用单调栈解决接雨水问题——LeetCode 42 接雨水+单调栈说明
题目内容 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输 ...
- Leetcode 42.接雨水 (每日一题 20210629)
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水.示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释: ...
- leetcode 42. 接雨水 思考分析(暴力、动态规划、双指针、单调栈)
目录 题目 思路 暴力法 动态规划 双指针法 单调栈 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 输入:height = [0,1,0,2 ...
- leetcode 42 接雨水 单调栈
接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下 ...
- leetcode 42. 接雨水
题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 解法 双指针法 ...
- LeetCode 每日一题 42. 接雨水 详细多种题解 C++描述
LeetCode 每日一题 42. 接雨水 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,一起加油吧~ 难度 困难 2020.04.04每日一题 ...
- LeetCode 42 Trapping Rain Water 收集雨水
LeetCode 42 Trapping Rain Water 收集雨水 Given n non-negative integers representing an elevation map whe ...
- 42. 接雨水 golang
42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这 ...
最新文章
- 伪元素first-letter
- Vsftpd 服务的部署及优化
- VS2008常见编译错误(总结篇)
- Docker 安装Grafana可视化面板
- 杠件受力分析 第一章 杠件受力分析
- python中异常和错误是一个概念_Python的异常概念介绍以及处理
- matlab 多项式表达,Matlab多项式运算
- PAT-乙级-1039. 到底买不买(20)
- LeetCode Map Sum Pairs
- 多处理器系统下的伪共享(false sharing)问题
- 计算机网络安全题库,2020年计算机网络安全与管理信息题库10月更新
- 宏碁电脑安装linux,ubuntu安装篇——acer 4750G ubuntu安装详解
- win10共享打印机搜索不到计算机,win10找不到共享打印机 win10搜不到共享打印机 - 云骑士一键重装系统...
- 1534 棋子游戏(博弈论,未知规律... ...)
- Unity接入海康威视门禁(获取门禁状态信息、门禁反控等)
- (Note)同比和环比
- android sd卡数据恢复软件下载,内存卡数据恢复
- Vue2.0源码解析 - 知其然知其所以然之Vue.use
- VB6.0中关于setfocus用法
- Excel中数据透视表数据源更新的三种方式
热门文章
- 301. Remove Invalid Parentheses
- [Linux][Ubuntu]Linux实习常用操作/Debug总结
- [剑指offer][JAVA]面试题[第23题][合并K个排序链表][分治][优先队列]
- android 广播唤醒应用,Android通过广播实现灭屏和唤醒
- php npm,php – Laravel中NPM,Composer和Bower的区别?
- oracle禁止修改密码,Oracle 用户密码过期后不允许修改密码的示例代码
- win7 管理iphone日历_大师给你传授win7系统安装桌面日历的途径
- Java设计模式笔记(1)单例模式
- oracle数据库领域,菜鸟成长课程之《Oracle数据库职业直通车》,引领大家真正进入Oracle数据库领域...
- sqlite3_exec