题解 | #接雨水问题#

接雨水问题

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

static const auto io_sync_off = []()
{
    // turn off sync
    std::ios::sync_with_stdio(false);
    // untie in/out streams
    std::cin.tie(nullptr);
    return nullptr;
}();
class Solution {
public:
    long long maxWater(vector<int>& arr) {
        vector<int> temp;
        temp.assign(arr.begin(),arr.end());
        reverse(temp.begin(), temp.end());
        int left=0;
        int right = max_element(arr.begin(),arr.end())-arr.begin();
        long long sum=0;
        for (int i=0;i<arr.size();i++){
            if(arr[i]<min(arr[left],arr[right])){
                sum+=min(arr[left],arr[right])-arr[i];
            }else if(i==right){
                left=right;
                right=max_element(temp.begin(), temp.end()-i-1)-temp.begin();
                right=arr.size()-right-1;
            }
            else if(arr[left]<=arr[i]){
                left=i;
            }
        }
        return sum;
    }
};
全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
勤劳的香菇求被捞求offer:满帮笔试都不给我发 似乎被卡本了
投递满帮集团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务