题解 | #接雨水问题#

接雨水问题

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

public:
    /**
     * max water
     * @param arr int整型vector the array
     * @return long长整型
     从左侧维护一个左侧最高值 单调栈,从右侧开始遍历找到能存雨水的位置,找到后计算并更新右侧最高
     */
    long long maxWater(vector<int>& arr) {
        // write code here
        stack<int> st;
        int n = arr.size();
        for(int i=0;i<n-1;i++){
            if(st.empty() || arr[i] > st.top()){
                st.push(arr[i]);
            }else{
                st.push(st.top());
            }
        }
        int r = arr[n-1];
        long long res = 0;
        for(int i=n-2;i>=1;i--){
            
            if(arr[i] < st.top() && arr[i] < r){
                res +=min(st.top(), r) - arr[i];  
            }
            if(arr[i] > r){
                r = arr[i];
            }
            st.pop();
        }
        return res;
    }
};
全部评论

相关推荐

2024-12-30 21:47
已编辑
北京化工大学 Python
今天刚面完hr面,hr说签了三方(别家的)不敢保证你会来字节吧啦吧啦的,最后也谢谢我的时间了,所以这是挂了吗?hr面会挂人吗?
码农索隆:发了也不一定去,去了也不一定过试用期,试用期过了也不一定一直干,一直干也不一定不会被开,,所以,顺其自然吧
点赞 评论 收藏
分享
2024-11-19 12:59
门头沟学院 测试开发
流浪offer计划:比起假惺惺的人才库,这才是冬日里的温暖
点赞 评论 收藏
分享
在逃香菇:考研去92,我领导筛hr筛过的简历的时候明说了:普通学校的本硕没区别。我司今年秋招嵌入式软件这边已经没有本科生了
点赞 评论 收藏
分享
到我怀里来:教育背景不用写主修课程,还有你写班级排名是什么意思?咋不写寝室排名呢😂要写就写年纪排名。得了那么多奖结果项目经历什么技术细节都不写清楚,把技术细节写清楚,用了什么技术解决了什么问题,“用了python语言、用了SQL语言”,有这样写的?hr一看就知道你是包装的或者比赛的奖是混的,你什么技术细节都不懂。校内职务全删了,什么三好学生、文明寝室这些你写上去干嘛?重复的奖学金你写三次干嘛?自我评价写那么多干嘛?谁想看这些
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务