LeetCode962. Maximum Width Ramp

题意

给一个序列,求其中最大的j-i, 满足i < j且num[i] <= nums[j]

方法

单调栈

代码

class Solution {
public:
    int maxWidthRamp(vector<int>& A) {
        stack<int> s;
        int n=A.size();
        int len=0;
        if(n==0){return 0;}
        s.push(0);
        for(int i=1;i<n;i++){
            if(A[s.top()]>A[i]){
                s.push(i);
            }
        }
        for(int i=n-1;i>0;i--){
            while(!s.empty()&&A[s.top()]<=A[i]){
                len=max(len,i-s.top());
                s.pop();
            }
            if(s.empty()){return len;}
        }
        return len;
    }
};
posted @   Figure_at_a_Window  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示