• leetcode-42


    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

     

    上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。

    示例:

    输入: [0,1,0,2,1,0,1,3,2,1,2,1]
    输出: 6

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/trapping-rain-water
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    感觉之前做过类似的,用的也是双指针

    class Solution {
    public:
        int trap(vector<int>& height)
        {
            int left = 0, right = height.size() - 1;
            int ans = 0;
            int left_max = 0, right_max = 0;
            while (left < right) {
                if (height[left] < height[right]) {
                    height[left] >= left_max ? (left_max = height[left]) : ans += (left_max - height[left]);
                    ++left;
                }
                else {
                    height[right] >= right_max ? (right_max = height[right]) : ans += (right_max - height[right]);
                    --right;
                }
            }
            return ans;
        }
    };

    end

    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    JavaScript高级程序设计之元素大小
    软件测试面试必备的一些基础理论概念
    golang跨平台编译
    gin shoudBind
    requests
    excelize
    gin获取全部参数
    golang随机数及pipe
    不安全代码只会在使用 /unsafe 编译的情况下出现
    MongoDB 比较运算符 $eq$gt
  • 原文地址:https://www.cnblogs.com/CherryTab/p/12227350.html
Copyright © 2020-2023  润新知