题解 | #接雨水问题#

接雨水问题

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

class Solution {
public:
    /**
     * max water
     * @param arr int整型vector the array
     * @return long长整型
     */
    long long maxWater(vector<int>& arr) {
        // write code here
        if(arr.size()<=2)
            return 0;
        int p=0, min = 0;
        //int f;
        long long sum = 0;
        int q = arr.size()-1;
        while(p<q){
            while((arr[p]<=arr[p+1])&& (p < arr.size()-2) )
                p++;
            while((arr[q]<=arr[q-1]) && (q>2))
                q--;
            if(p>=q)
                return sum;
            min = arr[p]>arr[q] ? arr[q]:arr[p];
            while((q>=p) && (arr[q] <= min))
            {
                sum += min -arr[q];
                q--;
            }
            min = arr[p]>arr[q] ? arr[q]:arr[p];
            while((p<=q) && (arr[p] <= min))
            {
                sum += min - arr[p];
                p++;
            }
        }
        return sum;
    }
};
全部评论

相关推荐

人间雪:简历最好只要一页,除非你牛逼到一页都写不下了
点赞 评论 收藏
分享
在投简历的柠檬精很想...:可以明确说,问的东西几乎是简历上的东西。你写的确实有点模糊。面试可能会问你一些常用的通信的问题,差分信号走线之类的,单片机最小系统啥的,模电,数电,基本电源,buck,boost,ldo之类的吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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