Leetcode_42. 接雨水

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Leetcode_42. 接雨水

Keane1998   2020-03-27 我要评论

经典的一个题,通过观察可以发现,每个高度能接的水就是左右两边分别的最大值的最小值再减去本身高度。

code

class Solution {
public:
    int trap(vector<int>& height) {
        int n=height.size();
        vector<int> mxl(n,-1),mxr(n,-1);
        int mx=0;
        for(int i=0;i<n;i++){
            mx=max(mx,height[i]);
            mxl[i]=mx;
        }
        mx=0;
        for(int i=n-1;i>=0;i--){
            mx=max(mx,height[i]);
            mxr[i]=mx;
        }
        int ans=0;
        for(int i=0;i<n;i++){
            ans+=min(mxl[i],mxr[i])-height[i];
        }
        return ans;
    }
};

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们