跳转至

最大宽度坡⚓︎

Leetcode题目链接

描述⚓︎

详见中文题目链接

解答⚓︎

class Solution {
public:
    int maxWidthRamp(vector<int>& nums) {
        stack<int> stk;
        int n = nums.size();
        int res = 0;

        for (int i = 0; i < n; i++) {
            if (stk.empty() || nums[stk.top()] > nums[i])
                stk.push(i);
        }

        for (int i = n - 1; i >= 0; i--) {
            while (!stk.empty() && nums[i] >= nums[stk.top()]) {
                res = max(i - stk.top(), res);
                stk.pop();
            }
        }

        return res;
    }
};