题解 | #接雨水问题#

接雨水问题

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;
        }


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

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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