码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 42 接雨水

时间:2020-01-04 12:23:24      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:alt   高度   mamicode   img   tco   amp   题解   顺序   技术   

题目描述:

技术图片

 

 题解:(一开始的时候一直没有梳理清楚) 有凹槽的地方势必左,右都有比其高的柱子。这里只需要知道当前点左边max以及右边max的柱子高度就可以求出当前位置能蓄多少水。

之前一直在梳理怎么顺序的去处理,思路出了问题。太麻烦的处理一般都不是正解,果然换个思路清晰了很多。

 

ac代码:

int trap(vector<int>& height)
    {
        int ans = 0;
        int Len = height.size();
        int pre[Len+10];
        int back[Len+10];
        for(int i=0;i<=Len;i++) 
        {
            pre[i] = 0;
            back[i] = 0;
        }
        int mx = 0;
        for(int i=0;i<Len;i++)
        {
            mx = max(mx,height[i]);
            pre[i] = mx;
        }
        mx = 0;
        for(int i=Len-1;i>=0;i--)
        {
            mx = max(mx,height[i]);
            back[i] = mx;
        }
        for(int i=1;i<Len-1;i++) 
        {
            int tmp = min(pre[i-1],back[i+1]);
            if(height[i] < tmp) ans+=(tmp - height[i]);
        }
        return ans;
    }

 

Leetcode 42 接雨水

标签:alt   高度   mamicode   img   tco   amp   题解   顺序   技术   

原文地址:https://www.cnblogs.com/z1141000271/p/12148310.html

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