题解 | #接雨水问题#

接雨水问题

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 herezzzzzzz
        int left = 0;
        int right = arr.size() - 1;
        int leftMax = arr[left];
        int rightMax = arr[right];
        long long result{};

        // 一次遍历
        while (left < right) {
            if (arr[left] < arr[right]) {
                left++;
                leftMax = std::max(leftMax, arr[left]);
                result += (leftMax - arr[left]);
            }
            else {
                right--;
                rightMax = std::max(rightMax, arr[right]);
                result += (rightMax - arr[right]);
            }
        }

        return result;
    }
};
全部评论

相关推荐

05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
程序员饺子:正常 我沟通了200多个 15个要简历 面试2个 全投的成都的小厂。很多看我是27直接不会了😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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