刷题6:下一个更大元素 II

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题6:下一个更大元素 II相关的知识,希望对你有一定的参考价值。

Leetcode: 503. 下一个更大元素 II

关键点:

遍历数组nums时,用 for(int i = 0;i < nums.length * 2;i++) 对数组遍历两次,下标index为i对长度len取余,否则会越界。具体见下列代码。

class Solution {
    public int[] nextGreaterElements(int[] nums) {
        Stack<Integer> st = new Stack<Integer>();
        int len = nums.length;
        int[] res = new int[len];
        Arrays.fill(res,-1);

        for(int i = 0;i < len * 2;i++){
            int index = i % len;
            while(!st.isEmpty() && nums[st.peek()] < nums[index]){
                res[st.pop()] = nums[index];
            }
            st.push(index);
        }
        return res;
    }
}

以上是关于刷题6:下一个更大元素 II的主要内容,如果未能解决你的问题,请参考以下文章

下一个更大元素II

下一个更大元素II

LeetCode 0503. 下一个更大元素 II

[Leetcode]下一个更大元素II

[Leetcode]下一个更大元素II

503. 下一个更大元素 II