LeetCode 42. Trapping Rain Water
来源:互联网 发布:交换机端口坏了怎么修 编辑:程序博客网 时间:2024/06/10 05:25
Problem Statement
(Source) 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
.
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!
Tags: Array
, Stack
, Two Pointers
.
Solution - Two Pointers
The idea is very simple. Begin scan from beginning and end of array. Compare value of left and right pointer, hold the greater one and move the other to inner array. Compute passed area when pointer gets inner. (mo10)
class Solution(object): def trap(self, height): """ :type height: List[int] :rtype: int """ if not height or len(height) < 3: return 0 res = 0 n = len(height) left, right = 0, n - 1 lower = min(height[left], height[right]) while left < right: if height[left] < height[right]: lower = max(lower, height[left]) res += (lower - height[left]) left += 1 else: lower = max(lower, height[right]) res += (lower - height[right]) right -= 1 return res
Complexity Analysis:
- Time Complexity:
O(n) . - Space Complexity:
O(1) .
0 0
- [LeetCode]42.Trapping Rain Water
- LeetCode --- 42. Trapping Rain Water
- LeetCode 42.Trapping Rain Water
- [Leetcode] 42. Trapping Rain Water
- [leetcode] 42.Trapping Rain Water
- 【leetcode】42. Trapping Rain Water
- ***LeetCode 42. Trapping Rain Water
- Leetcode 42. Trapping Rain Water
- leetcode 42. Trapping Rain Water
- [LeetCode]42. Trapping Rain Water
- leetcode 42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- leetcode.42. Trapping Rain Water
- [leetcode] 42. Trapping Rain Water
- LeetCode-42.Trapping Rain Water
- LeetCode 42. Trapping Rain Water
- C++ Cin输入数字时 输入字母 Cin状态出错
- (十八)ArcGIS API For Javascript之加载shp文件
- 聊聊"三遍读书法"
- ubuntu16.04安装及美化
- 利用c#在Word文档中插入多个表格,包含光标定位,插入分节符,设置页边距等
- LeetCode 42. Trapping Rain Water
- 多线程概述
- 这8个免费的网上课程可以有助你的技术成长
- 向量的点乘与叉乘的几何意义
- Effective Java(Item: 57 to 78)
- Numpy 入门教程(1)
- springmvc spring hibernate maven pom.xml
- 洛谷1196银河英雄传说【并查集+路径压缩】
- 图 的 深度搜索 之 马踏棋盘