题解 | #接雨水问题#

接雨水问题

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

双指针

刚开始的时候,我只考虑了只要后面的点比当前点小,就可以累加结果,如果大,就将后面的指针移过来,看了题解,恍然大悟

alt

import java.util.*;


public class Solution {
    public long maxWater (int[] arr) {
        int n = arr.length;
        long sum = 0;
        int l = 0,r = n - 1;
        while(l < r){
            int mi = Math.min(arr[l],arr[r]);
            while(l < r && arr[l] <= mi){
                sum += mi - arr[l++];
            }
            while(l < r && arr[r] <= mi){
                sum += mi - arr[r--];
            }
        }
        return sum;
    }
}
全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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