1. 程式人生 > 資訊 >京東方青島生產基地配套專案,10 億元福建萬達光電智造生產基地專案落戶

京東方青島生產基地配套專案,10 億元福建萬達光電智造生產基地專案落戶

給定一個迴圈陣列(最後一個元素的下一個元素是陣列的第一個元素),輸出每個元素的下一個更大元素。數字 x 的下一個更大的元素是按陣列遍歷順序,這個數字之後的第一個比它更大的數,這意味著你應該迴圈地搜尋它的下一個更大的數。如果不存在,則輸出 -1。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/next-greater-element-ii
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

import java.util.Arrays;
import java.util.Stack;

class Solution {
    public int[] nextGreaterElements(int[] nums) {
        if (nums == null || nums.length == 0) {
            return new int[0];
        }
        Stack<Integer> stack = new Stack<>();
        int[] ret = new int[nums.length];
        Arrays.fill(ret, -1);
        for (int i = 0; i < nums.length * 2; ++i) {
            while (!stack.isEmpty() && nums[stack.peek()] < nums[i % nums.length]) {
                Integer pop = stack.pop();
                ret[pop % nums.length] = nums[i % nums.length];
            }
            stack.push(i % nums.length);
        }


        return ret;
    }
}
心之所向,素履以往 生如逆旅,一葦以航