题解 | #接雨水问题#

接雨水问题

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

#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * max water
     * @param arr int整型vector the array
     * @return long长整型
     */
    long long maxWater(vector<int>& arr) {
        // write code here
        // 双指针
        int n=arr.size();
        // 从左又向右投影,找出每条柱子在 已遍历的柱子中的最大值;
        vector<int> left_right(n,0);
        // 从右又向左投影,找出每条柱子在 已遍历的柱子中的最大值;
        vector<int> right_left(n,0);
        // 然后再次遍历数组arr,每条柱子从left_right和right_left中选出较小的值,减去当前柱子的长度,即为该柱子能存储的雨水量;
        // 其实就是找出当前柱子左右两边围起来区域的较矮的墙;

        for(int left=0; left<n; ++left)
        {
            if(left==0)
                left_right[left] = arr[left];
            else
                left_right[left] = max(left_right[left-1], arr[left]);
        }

        for(int right=n-1; right>=0; --right)
        {
            if(right==n-1)
                right_left[right] = arr[right];
            else
                right_left[right] = max(right_left[right+1], arr[right]);
        }

        int ans = 0;
        // 其实可以集成在第二次遍历中就来计算;
        // 算了,还是这样思路清晰点
        for(int i=0; i<n; ++i)
            ans += (min(left_right[i],right_left[i]) - arr[i]);
        
        return ans;
    }
};

虚数五行区解题中心 文章被收录于专栏

非淡泊无以明志,非宁静无以致远

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24847次浏览 491人参与
# 中国电信笔试 #
31080次浏览 283人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14137次浏览 209人参与
# 你的实习产出是真实的还是包装的? #
18792次浏览 330人参与
# 如果秋招能重来,我会____ #
96691次浏览 500人参与
# 春招至今,你的战绩如何? #
59910次浏览 543人参与
# 米连集团26产品管培生项目 #
12949次浏览 285人参与
# i人适合做什么工作 #
36914次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79511次浏览 219人参与
# 哪些公司真双非友好? #
69200次浏览 287人参与
# 金三银四,你的春招进行到哪个阶段了? #
21567次浏览 277人参与
# 找AI工作可以去哪些公司? #
7673次浏览 186人参与
# 从事AI岗需要掌握哪些技术栈? #
7676次浏览 251人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339915次浏览 2165人参与
# 面试尴尬现场 #
220755次浏览 861人参与
# 五一之后,实习真的很难找吗? #
102797次浏览 584人参与
# 你做过最难的笔试是哪家公司 #
30108次浏览 193人参与
# 你小时候最想从事什么职业 #
159840次浏览 2072人参与
# 应届生第一份工资要多少合适 #
20483次浏览 84人参与
# 阿里笔试 #
176460次浏览 1302人参与
# 一张图晒出你司的标语 #
3821次浏览 72人参与
# 面试被问期望薪资时该如何回答 #
382457次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务