《LeetCode力扣练习》代码随想录——单调栈(下一个更大元素II—Java)
刷题思路来源于 代码随想录
503. 下一个更大元素 II
-
单调栈
class Solution { public int[] nextGreaterElements(int[] nums) { int[] result = new int[nums.length * 2]; Arrays.fill(result, -1); Deque<Integer> stack = new ArrayDeque<>(); stack.push(0); for (int i = 1; i < nums.length * 2; i++) { int index = i % nums.length; if (nums[index] <= nums[stack.peek() % nums.length]) { stack.push(i); } else { while (!stack.isEmpty() && nums[index] > nums[stack.peek() % nums.length]) { result[stack.peek()] = nums[index]; stack.pop(); } stack.push(i); } } return Arrays.copyOfRange(result, 0, nums.length); } }