代码随想录算法训练营第59天|503. 下一个更大元素 II,42. 接雨水

503. 下一个更大元素 II

class Solution {
public:
    vector nextGreaterElements(vector& nums) {
        int n = nums.size();
        vector ret(n, -1);
        stack stk;
        for (int i = 0; i < n * 2 - 1; i++) {
            while (!stk.empty() && nums[stk.top()] < nums[i % n]) {
                ret[stk.top()] = nums[i % n];
                stk.pop();
            }
            stk.push(i % n);
        }
        return ret;
    }
};

42. 接雨水

class Solution {
public:
    vector nextGreaterElements(vector& nums) {
        int n = nums.size();
        vector ret(n, -1);
        stack stk;
        for (int i = 0; i < n * 2 - 1; i++) {
            while (!stk.empty() && nums[stk.top()] < nums[i % n]) {
                ret[stk.top()] = nums[i % n];
                stk.pop();
            }
            stk.push(i % n);
        }
        return ret;
    }
};

你可能感兴趣的:(算法,leetcode,c++)