trapping-rain-water
来源:互联网 发布:linux 九九乘法表对齐 编辑:程序博客网 时间:2024/06/10 09:06
题目:
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], return6.
The above elevation map is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Thanks Marcos for contributing this image!
程序:
方法一:
夹逼遍历
class Solution {public: int trap(int A[], int n) { if(n <= 2) return 0; int max = -1, maxInd = 0; int i = 0; for(; i < n; ++i){ if(A[i] > max){ max = A[i]; maxInd = i; } } int area = 0, root = A[0]; for(i = 0; i < maxInd; ++i){ if(root < A[i]) root = A[i]; else area += (root - A[i]); } for(i = n-1, root = A[n-1]; i > maxInd; --i){ if(root < A[i]) root = A[i]; else area += (root - A[i]); } return area; }};
方法二:
左右遍历数组
public int trap(int[] A) { if(A==null || A.length==0) return 0; int max = 0; int res = 0; int[] container = new int[A.length]; for(int i=0;i<A.length;i++) { container[i]=max; max = Math.max(max,A[i]); } max = 0; for(int i=A.length-1;i>=0;i--) { container[i] = Math.min(max,container[i]); max = Math.max(max,A[i]); res += container[i]-A[i]>0?container[i]-A[i]:0; } return res;}
点评:
在做数组类题的时候夹逼和左右遍历数组都是常用方法
阅读全文
0 0
- LeetCode: Trapping Rain Water
- LeetCode : Trapping Rain Water
- Trapping Rain Water
- [LeetCode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- [Leetcode] Trapping Rain Water
- Trapping Rain Water
- Trapping Rain Water
- [LeetCode]Trapping Rain Water
- Trapping Rain Water
- Trapping Rain Water
- LeetCode-Trapping Rain Water
- Trapping Rain Water
- [leetcode] Trapping Rain Water
- Trapping Rain Water
- [LeetCode] Trapping rain water
- Leetcode: Trapping Rain Water
- 38 - Trapping Rain Water
- 谷歌浏览器最小化后打开黑屏
- 安卓基础--三分钟实现省市县三级联动
- linux常用命令搜索
- 更纯粹的下拉刷新和加载更多
- Python-for循环遍历列表
- trapping-rain-water
- diff.js 列表对比算法 源码分析
- C语言:二维数组定义,元素引用 实践
- HTTPS优势逐步凸显,传输安全倾向HTTPS(下)
- Spring Boot干货系列:默认日志框架配置
- Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser(2)
- 数据结构第二周三种传递方法
- 如何给input中text类型设置css
- 第二周项目2-程序的多文件组织