题解 | #接雨水问题#

接雨水问题

https://www.nowcoder.com/practice/31c1aed01b394f0b8b7734de0324e00f

  • 与上一题类似,计算最大容量,由于“短板效应”,每次都选短的一边开始计算;
  • 然后将从短边开始可以装入的水量累加,继续迭代;
  •     public long maxWater (int[] arr) {
            // write code here
            int l=0,r=arr.length-1;
            long res=0;
            int ml=0,mr=0;
            while(l<r){
                ml=Math.max(ml,arr[l]);//选取较大值作为当前的最左边界
                mr=Math.max(mr,arr[r]);//选取较大值作为当前的最右边界
                if(ml<mr){//由于短板效应,选较短的一边开始计算
                    res+=ml-arr[l++];
                }else
                    res+=mr-arr[r--];
            }
            return res;
        }


#做项目##实习下班后你在做什么#
全部评论

相关推荐

04-03 18:59
吉林大学 Java
大专人陈义:别投了,我看到有人点了第二个链接投递,还没退出界面,不合适的邮件就发过来了
点赞 评论 收藏
分享
03-29 18:59
运城学院 Java
程序员小白条:咱们要对自己的简历和学历有清晰的认知,不要动不动就大厂了....都26届了,没实习还想着大厂,唉
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务