class Solution:
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
# 单调栈
stack=[]
tmp=[-1]*len(nums2)
for i,item in enumerate(nums2):
if not stack:
stack.append([i,item])
else:
while stack and stack[-1][1]<item:
cur_index,cur_item=stack.pop()
tmp[cur_index]=item
stack.append([i,item])
dic={}
for i,item in enumerate(tmp):
dic[nums2[i]]=item
res=[-1]*len(nums1)
for i,item in enumerate(nums1):
res[i]=dic[item]
return res
LEETCODE 496. 下一个更大元素 I
最新推荐文章于 2024-08-10 22:52:22 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)