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
相关推荐
bksczm几秒前
二分查找的细则(binary search)
算法
A923A2 分钟前
【洛谷刷题 | 第三天】
算法·二分·洛谷·pair
abant210 分钟前
leetcode912 排序算法总结
算法·leetcode·排序算法
@猿程序15 分钟前
ShardingSphere自定义分片算法与Redis动态规则加载实战
网络·redis·算法
Share_Shun16 分钟前
【定位引导】多点对位算法
算法
炽烈小老头16 分钟前
【 每天学习一点算法 2026/03/18】全排列
学习·算法
Book思议-17 分钟前
【数据结构实战】判断链表是否有环:快慢指针法(Floyd 判圈算法)
c语言·数据结构·算法·链表
liuyao_xianhui19 分钟前
优选算法_位运算_只出现一次的数字3_C++
开发语言·数据结构·c++·算法·leetcode·链表·动态规划
lihao lihao24 分钟前
滑动窗口
数据结构·算法
小小怪75033 分钟前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python