再遇接雨水(代码片段)

码不停Ti 码不停Ti     2023-01-12     214

关键词:


又是经典的 接雨水

看到 这个答案 我就没有 搞懂 为什么要这么 写
会不会 超了 这样

import java.util.*;


public class Solution 
    //以 3 1 2 5 2 4 为例
    //从左向右扫描,遇到比第一个数大的则构成一个桶,计算盛多少水
    //然后再从右向左扫描一遍
    public long maxWater (int[] arr) 
        if (arr == null || arr.length == 0) 
            return 0;
        
        int low = 0;
        long sum = 0;
        long tmp = 0;
        //从左向右
        for (int i = 0; i < arr.length; i++) 
            if (arr[low] > arr[i]) 
                tmp = tmp + arr[low] - arr[i];
            
            if (arr[low] <= arr[i]) 
                sum = sum + tmp;
                tmp = 0;
                low = i;
            
        
        low = arr.length-1;
        tmp = 0;
        //从右向左
        for (int j = arr.length-1; j >= 0; j--) 
            if (arr[low] > arr[j]) 
                tmp = tmp + arr[low] - arr[j];
            
            //注意这里不能再 <=,否则可能会重复计算等于的情况
            if (arr[low] < arr[j]) 
                sum = sum + tmp;
                tmp = 0;
                low = j;
            
        
        return sum;
    

直到 我在 LeetCode 看到这个 图片 秒懂

javaleetcode-诱捕雨水收集雨水(代码片段)

查看详情

最强解析面试题:接雨水...(代码片段)

文章目录最强解析面试题:接雨水...题目思路代码附录最强解析面试题:接雨水…文章讲解“接雨水…”经典面试题,包含思路及源码,及解惑!题目给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下... 查看详情

java42.诱捕雨水(#)。java(代码片段)

查看详情

java42.诱捕雨水(#)。java(代码片段)

查看详情

java42.诱捕雨水(#)。java(代码片段)

查看详情

java42.诱捕雨水(#)。java(代码片段)

查看详情

java42.诱捕雨水(#)。java(代码片段)

查看详情

java42.诱捕雨水(#)。java(代码片段)

查看详情

hot10042.接雨水(代码片段)

42.接雨水给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。双指针法1)对于某一个位置i,我们能否接这个位置上的雨水,取决于i左右两侧的最大值(leftMax,rightMax)是否比height[i]大,只有... 查看详情

[leetcode]42.接雨水(代码片段)

...柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨水)。示例:输入:[0,1,0,2,1,0,1,3,2,1 查看详情

364.接雨水ii(代码片段)

364. 接雨水II中文English给出 n*m 个非负整数,代表一张X轴上每个区域为 1*1 的2d海拔图,计算这个海拔图最多能接住多少(面积)雨水。样例样例1:例如,给定一个5*4的矩阵:输入:[[12,13,0,12],[13,4,13,12],[13,8,10,12],[12... 查看详情

java刷题--42接雨水(代码片段)

java刷题--42接雨水题目代码结果题目代码暴力法classSolutionpublicinttrap(int[]height)intans=0;intsize=height.length;for(inti=1;i<size-1;i++)intmax_left=0,max_right=0;for(intj=i;j> 查看详情

42.接雨水(代码片段)

42.接雨水给定nnn​非负整数表示每个宽度为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]表示... 查看详情

leetcode42接雨水(代码片段)

动态规划方法:classSolutionpublicinttrap(int[]height)intlength=height.length;int[]leftLength=newint[length];int[]rigthLength=newint[length];intlefhMax=0;intrigthMax=0;//从左往右获取最高点fo 查看详情

42.接雨水(代码片段)

接雨水给定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]表示的高... 查看详情

42.接雨水(代码片段)

...度图,计算按此排列的柱子,下雨之后能接多少雨水。思路算法记录说明一、题目二、分析总结说明一、题目  给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水... 查看详情

407.接雨水ii(代码片段)

...图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 示例:给出如下3x6的高度图:[[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]]返回4。  如上图所示,这是下雨前的高度图[[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]] 查看详情

算法系列——接雨水(代码片段)

...度图,计算按此排列的柱子,下雨之后能接多少雨水。思路暴力解法:不断循环,找到height[1,i-1]height[i+1,height.length-2]两者之间的较小 查看详情