https://leetcode.com/problems/trapping-rain-water/

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`.

Input: the height of the bars as list

Output: the volumn of the water the bars can save

Conditions:注意到因为bar的高度不一样，所以中间的bar可以容纳一定量的水，题意就是求容纳的水的大小

AC代码（Python）

``` _author_ = "YE"
# -*- coding:utf-8 -*-

class Solution(object):
def trap(self, height):
"""
:type height: List[int]
:rtype: int
"""
l = len(height)
leftMostHigh = [0 for i in range(len(height))]
leftmax = 0
for i in range(l):
leftMostHigh[i] = leftmax
if height[i] > leftmax:
leftmax = height[i]

rightmax = 0
sum = 0
for i in reversed(range(l)):
if min(rightmax, leftMostHigh[i]) > height[i]:
sum = sum + min(rightmax, leftMostHigh[i]) - height[i]
if height[i] > rightmax:
rightmax = height[i]

return sum

height = [0,1,0,2,1,0,1,3,2,1,2,1]
s = Solution()
print(s.trap(height))```

## [LeetCode]题解（python）：042-Trapping Rain Water的更多相关文章

1. [Leetcode][Python]42: Trapping Rain Water

# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 42: Trapping Rain Waterhttps://oj.leetc ...

2. leetcode 第41题 Trapping Rain Water

题目: Given n non-negative integers representing an elevation map where the width of each bar is 1, co ...

3. [leetcode][042] Trapping Rain Water (Java)

我在Github上新建了一个解答Leetcode问题的Project, 大家可以参考, 目前是Java 为主,里面有leetcode上的题目,解答,还有一些基本的单元测试,方便大家起步. 题目在这里: ...

4. Java for LeetCode 042 Trapping Rain Water

Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

5. [LeetCode] Trapping Rain Water II 收集雨水之二

Given an m x n matrix of positive integers representing the height of each unit cell in a 2D elevati ...

6. [LeetCode] Trapping Rain Water 收集雨水

Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

7. leetcode#42 Trapping rain water的五种解法详解

leetcode#42 Trapping rain water 这道题十分有意思,可以用很多方法做出来,每种方法的思想都值得让人细细体会. 42. Trapping Rain WaterGiven n ...

8. [array] leetcode - 42. Trapping Rain Water - Hard

leetcode - 42. Trapping Rain Water - Hard descrition Given n non-negative integers representing an e ...

9. LeetCode:Container With Most Water,Trapping Rain Water

Container With Most Water 题目链接 Given n non-negative integers a1, a2, ..., an, where each represents ...

10. LeetCode - 42. Trapping Rain Water

42. Trapping Rain Water Problem's Link ------------------------------------------------------------- ...

## 随机推荐

1. 关于iOS特定设别推送（特定用户推送）【原】

在这里,我就不哆嗦如何制作推送证书之类的了,网上一搜一大堆. 我们现在很多开发者的推送,就是集成第三方的推送SDK,然后通过第三方的推送平台帮我们进行推送.其实,这种推送(如JPush),一般只能广播 ...

2. Android手机刷recovery

以前觉得android刷机是件很麻烦的事,现在倒不觉得了.  只要手机刷入第三方的recovery,一切都好办了,无论是root还是刷google play.  recovery开源的有两大阵营,tw ...

3. RabbitMQ 实现RPC

实现RPC 首先要弄明白,RPC是个什么东西. (RPC) Remote Procedure Call Protocol 远程过程调用协议 在一个大型的公司,系统由大大小小的服务构成,不同的团队维护不 ...

4. jquery 源码解析 节点遍历

jquery遍历,用于根据其相对于其他元素的关系来查找或选取html元素,以某项选择开始,并沿着这个选择移动,知道移动被称为对dom进行遍历 ☑ <div> 元素是 <ul> ...

5. JS实现的一个query字符串转Json格式数据的方法

输入字符串的格式是 a=1&b=2&c=3 \$.par2Json = function (string, overwrite) { var obj = {}, pairs = stri ...

6. Linux 下编译自己的 OpenJDK7 包括JVM和JDK API

1.首先去 这里 http://download.java.net/openjdk/jdk7/ 下载OpenJDK7的源码zip包 2. 简要介绍下OpenJDK7中的目录 hotspot: 放有Op ...

7. 转载:robotium typeText与enterText区别

solo.typeText和solo.enterText方法都可以对EditeText进行测试,达到的测试目的是一样的.存在几点不同: 1.实现上,typeText方法是robotium框架调用系统I ...

8. 学习笔记--函数式线段树(主席树)(动态维护第K极值(树状数组套主席树))

函数式线段树..资瓷 区间第K极值查询 似乎不过似乎划分树的效率更优于它,但是如果主席树套树状数组后,可以处理动态的第K极值.即资瓷插入删除,划分树则不同- 那么原理也比较易懂: 建造一棵线段树(权值 ...

9. ASP.Net核心对象之HttpResponse

简介: HttpResponse是对响应报文进行设置的一个对象.通过context. Response 能够得到HttpResponse对象. context.Response.Charset;//获 ...

10. javascript中字符串格式json如何转化成json对象

什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于 ...