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 @ 2022-12-12 21:59  Figure_at_a_Window  阅读(16)  评论(0)    收藏  举报