Day58力扣打卡

打卡记录

下一个更大元素 IV(单调栈 x2)

链接

python 复制代码
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
相关推荐
Hgfdsaqwr2 分钟前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
一晌小贪欢27 分钟前
Python 测试利器:使用 pytest 高效编写和管理单元测试
python·单元测试·pytest·python3·python测试
小文数模28 分钟前
2026年美赛数学建模C题完整参考论文(含模型和代码)
python·数学建模·matlab
智码未来学堂29 分钟前
探秘 C 语言算法之枚举:解锁解题新思路
c语言·数据结构·算法
Halo_tjn35 分钟前
基于封装的专项 知识点
java·前端·python·算法
春日见1 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
副露のmagic1 小时前
更弱智的算法学习 day59
算法
Hgfdsaqwr1 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
weixin_395448911 小时前
export_onnx.py_0130
pytorch·python·深度学习
s1hiyu1 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python