当前位置: 首页 > news >正文

Leetcode 刷题笔记1 单调栈part01

leetcode 739 每日温度

对于单调栈问题,我觉得是在循环外部增加一些辅助项减少时间复杂度,但增加内存空间的利用

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

leetcode 496 下一个更大元素 |

审题!!!

class Solution:
    def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
        ans = [-1] * len(nums1)
        stack = [0]
        for i in range(1, len(nums2)):
            if nums2[i] <= nums2[stack[-1]]:
                stack.append(i)
            else:
                while len(stack) != 0 and nums2[i] > nums2[stack[-1]]:
                    if nums2[stack[-1]] in nums1:
                        index = nums1.index(nums2[stack[-1]])
                        ans[index] = nums2[i]
                    stack.pop()
                stack.append(i)
        return ans

leetcode 503 下一个更大元素||

循环数组法一,两个相同数组串在一起:

class Solution:
    def nextGreaterElements(self, nums: List[int]) -> List[int]:
        ans = [-1] * len(nums)
        stack = [0]
        for i in range(len(nums) * 2):
                while len(stack) != 0 and nums[i % len(nums)] > nums[stack[-1]]:
                    ans[stack[-1]] = nums[i % len(nums)]
                    stack.pop()
                stack.append(i % len(nums))
        return ans

法二:同一个数组循环两遍

相关文章:

  • UART转AHB模块ModelSim仿真
  • C语言每日一练——day_10
  • 冒泡排序:古老算法中的智慧启示
  • c++学习系列----003.写文件
  • MySQL——数据类型
  • Postman 新手入门指南:从零开始掌握 API 测试
  • 嵌入式Linux | 什么是 BootLoader、Linux 内核(kernel)、和文件系统?
  • 基于javaweb的SpringBoot智能相册管理系统图片相册系统设计与实现(源码+文档+部署讲解)
  • 音视频处理的“瑞士军刀”与“积木”:FFmpeg 与 GStreamer 的深度揭秘
  • 【系统架构设计师】操作系统 - 文件管理 ③ ( 树形目录结构 | 文件属性 | 绝对路径 与 相对路径 )
  • C++类:特殊的数据成员
  • Linux环境使用jmeter做性能测试
  • 全球化2.0 | ZStack云计算系统工程师(ZCCE)国际认证培训成功举办
  • win10 c++ VsCode 配置PCL open3d并显示
  • 猎豹移动(Cheetah Mobile)
  • 【Unity】TextMesh Pro显示中文部分字体异常
  • 基于FPGA的3U机箱模拟量高速采样板ADI板卡,应用于轨道交通/电力储能等
  • 游戏引擎学习第157天
  • LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0
  • 关于微信小程序端base64解码问题
  • 俄外长:俄将在不损害伙伴关系前提下发展对美关系
  • 游客曝九寨沟打网约车被出租车围堵,景区回应:当地无合规网约车
  • 建行一季度净利833.51亿同比下降3.99%,营收降5.4%
  • 成都警方:在地铁公共区域用改装设备偷拍女乘客,男子被行拘
  • 解放日报头版:人民城市共建共享展新卷
  • 长三角铁路“五一”假期运输今启动:预计发送旅客量增6%,5月1日当天有望创新高