题解 | #接雨水问题#

接雨水问题

http://www.nowcoder.com/practice/31c1aed01b394f0b8b7734de0324e00f

接雨水

#include<algorithm>
class Solution {
public:
    /**
     * max water
     * @param arr int整型vector the array
     * @return long长整型
     */
    long long maxWater(vector<int>& arr) {
        // write code here
        if(arr.size() == 0)
            return 0;
        long ans = 0;
        int left_max[arr.size()];
        int right_max[arr.size()];


        left_max[0] = arr[0];

        int len = arr.size();

        for(int i = 1; i< len;i++){
            left_max[i] = max(arr[i],left_max[i-1]);
        }

        right_max[len-1] = arr[len-1];

        for(int j = len-2; j>=0;j--){
            right_max[j] = max(arr[j],right_max[j+1]);
        }

        for(int i = 1; i < len-1;i++){
            ans+= min(right_max[i],left_max[i]) - arr[i];
        }

        return ans;

    }
};
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务