代码随想录算法训练营第57天|● 739. 每日温度 ● 496.下一个更大元素 I

单调栈:维持一个单调的栈,用于解决离最近的比自己大or小的元素的距离

739. 每日温度

和之前那个top k 最小堆感觉思路是一样的

python 复制代码
class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        ans=[0]*len(temperatures)
        stack=[0]
        for i in range(1,len(temperatures)):
            if temperatures[i]<=temperatures[stack[-1]]:
                stack.append(i)
            else:
                while stack and temperatures[i]>temperatures[stack[-1]]:
                    ans[stack[-1]]=i-stack[-1]
                    stack.pop()
                stack.append(i)
        return ans

496. 下一个更大元素 I

和上一题思路一样,实现上稍微绕了一下

python 复制代码
class Solution:
    def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
        res=[-1]*len(nums1)
        stack=[0]
        for i in range(1,len(nums2)):
            if nums2[i]<=nums2[stack[-1]]:
                stack.append(i)
            else:
                while stack and nums2[i]>nums2[stack[-1]]:
                    if nums2[stack[-1]] in nums1:
                        idx=nums1.index(nums2[stack[-1]])
                        res[idx]=nums2[i]
                    stack.pop()
                stack.append(i)
        return res
相关推荐
走过,莫回头1 分钟前
在OpenMP中,#pragma omp的使用
开发语言·openmp
Warren9811 分钟前
Java Collections工具类
java·开发语言·笔记·python·学习·oracle·硬件工程
love530love16 分钟前
Windows 11 下 Anaconda 命令修复指南及常见问题解决
运维·ide·人工智能·windows·python·架构·conda
NeoFii16 分钟前
Day 24:元组与os模块
python·机器学习
半新半旧29 分钟前
1.DRF 环境安装与配置
python·django
Sean_summer30 分钟前
暑期第二周
前端·数据库·python
封奚泽优35 分钟前
使用Python绘制金融数据可视化工具
python·信息可视化·excel·pandas·pyplot·qtwidgets·qtcore
数据智能老司机1 小时前
使用 Python 进行并行与高性能编程——构建多线程程序
python·性能优化·编程语言
站大爷IP1 小时前
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
python
工程师0071 小时前
C#多线程,同步与异步详解
开发语言·c#·多线程·同步·异步编程