码迷,mamicode.com
首页 > 移动开发 > 详细

42. Trapping Rain Water(js)

时间:2019-02-24 01:06:04      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:app   else   length   ppi   inpu   return   set   bar   out   

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

技术图片
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!

Example:

Input: [0,1,0,2,1,0,1,3,2,1,2,1]
Output: 6
题意:给定一个直方图,求出能积水的面积
代码如下:
/**
 * @param {number[]} height
 * @return {number}
 */
var trap = function(height) {
    var left=0,right=height.length-1;
    var maxLeft=0,maxRight=0;
    var res=0;
    while(left<right){
        if(height[left]<height[right]){
            if(height[left]>=maxLeft) maxLeft=height[left];
            else res+=maxLeft-height[left] ;
            left++;
        }else{
            if(height[right]>=maxRight) maxRight=height[right];
            else res+=maxRight-height[right];
            right--;
        }
    }
    return res;
};

 

42. Trapping Rain Water(js)

标签:app   else   length   ppi   inpu   return   set   bar   out   

原文地址:https://www.cnblogs.com/xingguozhiming/p/10424853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!