Leetcode 刷题笔记1 单调栈part01

devtools/2025/3/19 19:47:16/

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

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


http://www.ppmy.cn/devtools/168423.html

相关文章

Redis常用数据类型和使用常见以及基本操作举例(适合初学者,以医药连锁管理系统为背景)

Redis的常见数据类型&#xff0c;包括String、Hash、List、Set、Zset等&#xff0c;这些数据类型都有各自的特点和适用场景。接下来&#xff0c;将这些数据类型与医药连锁管理系统的业务场景进行匹配。 String类型&#xff0c;适合存储单个值。在医药连锁管理系统中&#xff0…

C#语言的响应式设计

C#语言的响应式设计 引言 随着信息技术的不断发展&#xff0c;响应式设计已经成为现代软件开发中一个重要的设计理念。它不仅应用于前端开发&#xff0c;还逐渐扩展到后端开发以及各种编程语言中。C#语言作为一种强类型、面向对象的编程语言&#xff0c;逐渐在响应式设计的过…

2.git和github操作:diff链接

目录 1. 获取差异链接的核心方法方法 1&#xff1a;通过分支/提交比较生成链接&#xff08;适用于 GitHub/GitLab/Bitbucket&#xff09;方法 2&#xff1a;使用单次提交的差异链接&#xff08;查看某次提交的改动&#xff09;方法 3&#xff1a;通过 Pull Request&#xff08;…

微服务即时通信系统---(五)框架学习

目录 ODB 介绍 安装 build2安装 odb-compiler安装 ODB运行时库安装 mysql和客户端开发包安装 boost profile库安装 总体打包安装 总体卸载 总体升级 头文件包含和编译时指明库 ODB常见操作介绍 类型映射 ODB编程 类与接口介绍 mysql连接池对象类 mysql客户端…

LabVIEW 线性拟合

该 LabVIEW 程序实现了 线性拟合&#xff08;Linear Fit&#xff09;&#xff0c;用于计算给定一组数据点的斜率&#xff08;Slope&#xff09;和截距&#xff08;Intercept&#xff09;&#xff0c;并将结果可视化于 XY Graph 中。本案例适用于数据拟合、实验数据分析、传感器…

RCore学习记录001

配置环境 我选择的操作系统环境是Ubuntu24.04的虚拟机 安装qemu7.0.0 安装依赖库 sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build build-essential git-email libaio-dev libbluetooth-dev libcapstone-dev libbrlapi-dev libb…

【c++】c++语言中““符号的用途介绍

c语言中&#xff0c;“&”符号有4种用途&#xff1a;逻辑与运算符、按位与运算符、取地址运算符、引用标识符。前三种作用在c语言和c语言中是共有的&#xff0c;而第4种作用是c中特有的。下边对这4种用途做个介绍。 一、几个相关的概念 1、运算符 c运算符是指用于执行程序…

Git:速查手册

Git&#xff1a;速查手册 1.基础知识四个区域文件状态基本概念特殊文件GitFlow 2.CMD初始化设置创建仓库添加与提交撤销与恢复状态与差异远程仓库操作分支Stash: 1.基础知识 四个区域 工作区&#xff08;Working Directory&#xff09;&#xff1a;你在电脑里能实际看到的目录。…