zoukankan      html  css  js  c++  java
  • Leetcode 42 接雨水

    题目描述:

     题解:(一开始的时候一直没有梳理清楚) 有凹槽的地方势必左,右都有比其高的柱子。这里只需要知道当前点左边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;
        }
  • 相关阅读:
    dubbo踩坑
    windows下面使用protobuf
    解决端口占用的问题
    建设检验
    统计学资料整理
    java cpu 负载高分析
    演讲/汇报
    管理和领导
    css渐变动画
    vue组件之间互相传值:父传子,子传父
  • 原文地址:https://www.cnblogs.com/z1141000271/p/12148310.html
Copyright © 2011-2022 走看看