2.1.14 TrappingRainWater
来源:互联网 发布:kali linux下载 编辑:程序博客网 时间:2024/06/11 00:28
Notes:
Given n non-negative integers representing an elevation map where the width of
each bar is 1, compute how much water it is able to trap after raining.
For example,
Given [0,1,0,2,1,0,1,3,2,1,2,1], return 6.
Solution: 1. Find left bound and right bound for each element. O(n).
2. more space efficiency. Time: O(n), Space: O(1);对于每个柱子,找到其左右两边最高的柱子,该柱子能容纳的面积就是min(max_left,
max_right) - height。在求柱子的左右最大值的时候,包括柱子本身。
class Solution {public: int trap_1(int A[], int n) { if (n == 0) return 0; vector<int> maxLeft(n,0); vector<int> maxRight(n,0); maxLeft[0] = A[0]; maxRight[n - 1] = A[n - 1]; for (int i = 1; i < n; ++i) { maxLeft[i] = max(maxLeft[i - 1], A[i]); maxRight[n - 1 - i] = max(maxRight[n - i], A[n - 1 - i]); } int res = 0; for (int i = 1; i < n; ++i) { res += min(maxLeft[i], maxRight[i]) - A[i]; } return res; }}
0 0
- 2.1.14 TrappingRainWater
- 2.1.14 Valid Sudoku
- 出列排序 《算法》2.1.14
- quartz2.2.1 example 14代码分析
- phantomjs-prebuilt@2.1.14 install 安装错误
- 算法 第四版 2.1.14 出列排序
- Skype 2.1 在 Fedora 14 x64 位下录音不正常
- (2.1.14)java的多态:重载与覆盖
- npm install 时报 phantomjs-prebuilt@2.1.14 安装失败解决方案
- npm install 时报 phantomjs-prebuilt@2.1.14 安装失败解决方案
- 2.1.14 —线性表—Valid Sudoku
- 2.1
- 2.1
- 2.1
- 2.1
- 2.1
- 2.1
- 2.1
- 【iOS】真机调试问题总结 错误集合
- Leetcode Binary Tree Preorder Traversal 二叉树先序遍历
- Android platform build guide for Exynos-4412(odroid -X/X2/U2/U3/Q2/Q)
- UIColor,CGColor,CIColor三者的区别和联系
- 重构方法之对象之间搬移特性
- 2.1.14 TrappingRainWater
- 求Fibonacci数列的第n项
- listview的adapter中的一些问题
- [shellcode学习] 绕过条件判断
- leetcode 日经贴,Cpp code -Sudoku Solver
- windows C++ 互相等待线程同步示例
- VS2008一调试就崩溃
- iOS蓝牙4.0开发(一)与外设通讯
- 移动App下载量SEO优化