zoukankan      html  css  js  c++  java
  • 42. Trapping Rain Water

    Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.


    The above elevation map is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Thanks Marcos for contributing this image!

    Example:

    Input: [0,1,0,2,1,0,1,3,2,1,2,1]
    Output: 6

    AC code:

    class Solution {
    public:
        int trap(vector<int>& height) {
            int left = 0;
            int right = height.size() - 1;
            int leftMax = 0;
            int rightMax = 0;
            int res = 0;
            while (left < right) {
                if (height[left] < height[right]) {
                    leftMax = max(leftMax, height[left]);
                    res += leftMax - height[left];
                    left++;
                } else {
                    rightMax = max(rightMax, height[right]);
                    res += rightMax - height[right];
                    right--;
                }
            }
            return res;
        }
    };
    
    Runtime: 4 ms, faster than 100.00% of C++ online submissions for Trapping Rain Water.
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    16. Vue 登录存储
    JS 10位、13位时间戳转日期
    14.Vue 定义全局函数
    13.Vue+Element UI实现复制内容
    12.Vue+Element UI 获取input的值
    11.Vue安装Axios及使用
    Layui入手
    MongoDB自启动设置
    sql数据统计
    sql查询总结
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9799362.html
Copyright © 2011-2022 走看看