503. 下一个更大元素 II 单调栈+循环数组

  1. class Solution:
  2.     def nextGreaterElements(self, nums: List[int]) -> List[int]:
  3.         dp=[-1]*len(nums)
  4.         stack=[]
  5.         for i in range(len(nums)*2):
  6.             while len(stack)>=1 and nums[i%(len(nums))]>nums[stack[-1]]:
  7.                 dp[stack[-1]]=nums[i%len(nums)]
  8.                 stack.pop()
  9.             stack.append(i%(len(nums)))
  10.         return dp

循环数组处理:

两个数组拼接

发表评论