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
相关推荐
weixin_56899606几秒前
Python开发Flask项目如何部署到云服务器_使用Fabric自动化发布脚本
jvm·数据库·python
m0_596406371 分钟前
Python中正确声明、重新赋值并安全使用None变量的完整指南
jvm·数据库·python
Word码2 分钟前
QQ音乐自动化测试实战指南
python·功能测试·测试工具·pycharm·集成测试
帅次3 分钟前
Android 高级工程师面试参考答案:架构设计、Jetpack 与 Compose
android·面试·职场和发展·架构·composer·jetpack
m0_716430074 分钟前
实现 Flex 容器内子元素自适应高度并启用自动滚动
jvm·数据库·python
weixin_381288184 分钟前
c++怎么在写入文本文件时自动将所有的制表符统一转换为四格空格【实战】
jvm·数据库·python
聆风吟º5 分钟前
【Python编程日志】Python入门基础(二):行 | 缩进 | print输出
开发语言·python·print··缩进
m0_743623926 分钟前
MySQL导入大SQL文件报错怎么办_拆分文件与优化系统参数
jvm·数据库·python
weixin_424999367 分钟前
组件懒加载如何处理 JS 报错后的重试加载?保障应用高可用性实战
jvm·数据库·python
baidu_340998828 分钟前
SQL中如何通过视图实现行级加密_CASE WHEN语句的妙用
jvm·数据库·python