Day58力扣打卡
2023-12-13 06:12:57
打卡记录
下一个更大元素 IV(单调栈 x2)
class Solution:
def secondGreaterElement(self, nums: List[int]) -> List[int]:
ans = [-1] * len(nums)
s = []
t = []
for i, x in enumerate(nums):
while t and nums[t[-1]] < x:
ans[t.pop()] = x # t 栈顶的下下个更大元素是 x
j = len(s) - 1
while j >= 0 and nums[s[j]] < x:
j -= 1 # s 栈顶的下一个更大元素是 x
t += s[j + 1:] # 把从 s 弹出的这一整段元素加到 t
del s[j + 1:] # 弹出一整段元素
s.append(i) # 当前元素(的下标)加到 s 栈顶
return ans
文章来源:https://blog.csdn.net/qq947467490/article/details/134961415
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!