zoukankan      html  css  js  c++  java
  • Leetcode42. 接雨水

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

    示例 1:

    输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
    输出:6
    解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。
    示例 2:

    输入:height = [4,2,0,3,2,5]
    输出:9

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

    两次循环求出某个柱子左边最高的柱子的高度和右边最高的柱子的高度,取min累加到答案即可。

    class Solution {
    public:
        int n, lmax[30005] = { 0 }, rmax[30005] = { 0 };;
        int trap(vector<int>& height) {
            n = height.size();
            int mmax = 0;
    	    for(int i = 0; i < n; i++)
    	    {
    	    	mmax = max(mmax, height[i]);
    	    	lmax[i] = mmax;
    	    }
    	    mmax = 0;
    	    for(int i = n - 1; i >= 0; i--)
    	    {
    	    	mmax = max(mmax, height[i]);
    	    	rmax[i] = mmax;
        	}
    	    int ans = 0;
    	    for(int i = 0; i < n; i++)
    	    {
    	    	ans += min(lmax[i], rmax[i]) - height[i];
    	    }
    	    return ans;
        }
    };
    
  • 相关阅读:
    ansible-乱
    linux-PXE-12
    linux-ntp-10
    linux-selinxu---性能 -8
    linux-系统启动流程-7
    linux-网络管理-6
    linux-文件系统-5
    linux-包管理器-4
    linux-shell脚本基础-2
    linux-history-ps1-1
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/14469949.html
Copyright © 2011-2022 走看看