题解 | #接雨水问题#

接雨水问题

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

写法上没有太多技巧,先从左向右找,找到一个比当前柱子高的,那么这就形成了一个坑,然后计算坑中的水。

再从右向左好,找到一个比当前柱子高的,计算坑中的水。

import java.util.*;


public class Solution {
    /**
     * max water
     * @param arr int整型一维数组 the array
     * @return long长整型
     */
    public long maxWater (int[] arr) {
        // write code here
        if (arr.length < 3) {
            return 0L;
        }
        int p1 = 0, p2 = 0;
        long result = 0L;
        for (; p2 < arr.length; p2++) {
            if (arr[p2] >= arr[p1]) {
                int t = arr[p1];
                for (; p1 < p2; p1++) {
                    result += (t - arr[p1]);
                }
            }
        }
        
        p1 = arr.length - 1;
        p2 = arr.length - 1;
        for (; p2 >= 0; p2--) {
            if (arr[p2] > arr[p1]) {
                int t = arr[p1];
                for (; p1 > p2; p1--) {
                    result += (t - arr[p1]);
                }
            }
        }
        return result;
    }
}
全部评论

相关推荐

这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
晗江雪:其实我只是觉得你们导员说的很好笑
点赞 评论 收藏
分享
找个工作&nbsp;学历是要卡的&nbsp;要求是高的&nbsp;技能不足是真的&nbsp;实习经验是0的&nbsp;简历无处可写是事实的&nbsp;钱不好赚是真的&nbsp;想躺平又不敢躺&nbsp;也不甘心躺&nbsp;怕自己的灵感和才华被掩埋甚至从未被自己发现&nbsp;又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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