Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270086
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-07-07 11:42:36

//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.
import java.util.ArrayList;


import javax.security.auth.kerberos.KerberosKey;


public class TrappingRainWater {


public static void main(String[] args) {
// TODO 自动生成的方法存根


}
public int trap(int[] height) {
if(height==null||height.length<=2)
return 0;
//左边最小值数组
int[] leftHeightValue=new int[height.length];
int heightValue=0;
for(int i=0;i<height.length;i++){
if(height[i]>heightValue)
heightValue=height[i];

leftHeightValue[i]=heightValue;
}
//右边最小值数组
int[] rightHeightValue=new int[height.length];
heightValue=0;
for(int i=height.length-1;i>=0;i--){
if(height[i]>heightValue)
heightValue=height[i];
rightHeightValue[i]=heightValue;
}
int sum=0;
for(int i=0;i<height.length;i++){
sum=sum+Math.min(leftHeightValue[i], rightHeightValue[i])-height[i];
}
return sum;
}


}
 
阅读(656) | 评论(0) | 转发(0) |
0

上一篇:First Missing Positive

下一篇:Interleaving String

给主人留下些什么吧!~~