本文主要是介绍Day58力扣打卡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
打卡记录
下一个更大元素 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 栈顶的下下个更大元素是 xj = len(s) - 1while j >= 0 and nums[s[j]] < x:j -= 1 # s 栈顶的下一个更大元素是 xt += s[j + 1:] # 把从 s 弹出的这一整段元素加到 tdel s[j + 1:] # 弹出一整段元素s.append(i) # 当前元素(的下标)加到 s 栈顶return ans
这篇关于Day58力扣打卡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!