首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Leetcode|备忘录|42. 接雨水

Leetcode|备忘录|42. 接雨水

作者头像
SL_World
发布2021-09-22 11:19:44
发布2021-09-22 11:19:44
2020
举报
文章被收录于专栏:XX

一、动态规划——备忘录

代码语言:javascript
复制
class Solution {
public:
    int trap(vector<int>& height) {
        if (height.empty()) return 0;
        int size = height.size();
        // max_left[i]记录第i点及其左边最高的柱子
        vector<int> max_left(size, 0);
        // max_right[i]记录第i点及其右边最高的柱子
        vector<int> max_right(size, 0);
        // 初始化
        max_left[0] = height[0];
        max_right[size - 1] = height[size - 1];
        int water = 0;
        // 从左至右
        for (int i = 1; i < size; i++)
            max_left[i] = max(max_left[i - 1], height[i]);
        // 从右至左
        for (int i = size - 2; i >= 0; i--)
            max_right[i] = max(max_right[i + 1], height[i]);
        // 计算总雨水
        for (int i = 1; i < size - 1; i++)
            water += min(max_left[i], max_right[i]) - height[i];
        return water;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、动态规划——备忘录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档