leetcode(2)栈
leetcode 155 最小栈
stack相当于栈,先进后出 存储全部栈元素 [-3,2,-1]
min_stack,存储栈当前位置最小的元素 [-3,-3,-3]
class MinStack:def __init__(self):self.stack = []self.min_stack = [math.inf]def push(self, x: int) :self.stack.append(x)self.min_stack.append(min(x, self.min_stack[-1]))def pop(self) -> None:self.stack.pop()self.min_stack.pop() # 也需要删除当前位置的最小元素def top(self) -> int:return self.stack[-1]def getMin(self) -> int:return self.min_stack[-1]
leetcode 20 有效括号
class Solution:def isValid(self, s: str) -> bool:dic = {'{': '}', '[': ']', '(': ')','?':'?'}stack = ["?"]for c in s:if c in dic: stack.append(c)elif dic[stack.pop()] != c: return False return len(stack) == 1
leetcode 227 基本计算器2
class Solution:def calculate(self, s: str) -> int:n = len(s)stack = []preSign = '+'num = 0for i in range(n):if s[i] != ' ' and s[i].isdigit():num = num * 10 + ord(s[i]) - ord('0')if i == n - 1 or s[i] in '+-*/':if preSign == '+':stack.append(num)elif preSign == '-':stack.append(-num)elif preSign == '*':stack.append(stack.pop() * num)else:stack.append(int(stack.pop() / num))preSign = s[i]num = 0return sum(stack)
leetcode 150 逆波兰表达式
class Solution:def evalRPN(self, tokens: List[str]) -> int:op_to_binary_fn = {"+": add,"-": sub,"*": mul,"/": lambda x, y: int(x / y), # 需要注意 python 中负数除法的表现与题目不一致}stack = list()for token in tokens:try:num = int(token)except ValueError:num2 = stack.pop()num1 = stack.pop()num = op_to_binary_fn[token](num1, num2)finally:stack.append(num)return stack[0]
leetcode 验证栈序列
输入两个栈 A和B判断B是否为A的出栈序列
输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
输出:true
解释:我们可以按以下顺序执行:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1
class Solution:def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:stack, i = [], 0for num in pushed:stack.append(num) # num 入栈while stack and stack[-1] == popped[i]: # 循环判断与出栈stack.pop()i += 1return not stack
leetcode 字符串编解码
class Solution:def decodeString(self, s: str) -> str:stack, res, multi = [], "", 0for c in s:if c == '[':stack.append([multi, res])res, multi = "", 0elif c == ']':cur_multi, last_res = stack.pop()res = last_res + cur_multi * reselif '0' <= c <= '9':multi = multi * 10 + int(c) else:res += creturn res
leetcode 下一个更大元素
class Solution1:def nextGreaterElement(self, nums1, nums2):dic = {}for i in range(len(nums2)):j = i + 1while j < len(nums2) and nums2[i] >= nums2[j]:j += 1if j < len(nums2) and nums2[i] < nums2[j]:dic[nums2[i]] = nums2[j]return [dic.get(x, -1) for x in nums1]
leetcode 去除重复字符
class Solution(object):def removeKdigits(self, num, k):stack = []remain = len(num) - kfor digit in num:while k and stack and stack[-1] > digit:stack.pop()k -= 1stack.append(digit)return ''.join(stack[:remain]).lstrip('0') or '0'
leetcode 每日最高温度
class Solution:def dailyTemperatures(self, temperatures):stack, ret = [], [0] * len(temperatures)for i, num in enumerate(temperatures):while stack and temperatures[stack[-1]] < num:index = stack.pop()ret[index] = i - indexstack.append(i)return ret相关文章:
leetcode(2)栈
leetcode 155 最小栈 stack相当于栈,先进后出 存储全部栈元素 [-3,2,-1] min_stack,存储栈当前位置最小的元素 [-3,-3,-3] class MinStack:def __init__(self):self.stack []self.min_stack [math.inf]def push(self, x: int) :self.stack.append(x)self.min_sta…...
有什么小程序可以下载视频号的视频?
最近有一些朋友问我,【视频号下载助手】和【视频下载bot】小程序,有什么作用? 首先视频号下载助手是协助用户进行下载的,但由于下载要符合平台规定,我们就将视频下载助手与视频下载bot小程序想结合的模式࿰…...
GDB调试简单介绍
最近和许多同事交流时,发现好多人只是在IDE上debug,但是gdb却一点都不了解;校招新来的同事更是都没听过gdb这个工具,所以在培训时给他们培训了一下;另外好久也没写blog了,刚好把这篇笔记简单分享一下。 0 …...
关于opencv的contourArea计算方法
cv::contourArea计算的轮廓面积并不等于轮廓点计数,原因是cv::contourArea是基于Green公式计算 老外的讨论 github 举一个直观的例子,图中有7个像素,橙色为轮廓点连线,按照contourArea的定义,轮廓的面积为橙色所包围…...
《机器学习》第6章 支持向量机
文章目录 6.1 间隔与支持向量6.2 对偶问题6.3 核函数支持向量展式核函数 6.4 软间隔与正则化6.5 支持向量回归6.6 核方法6.7 阅读材料 6.1 间隔与支持向量 分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开.但能将训练样本分开的划分…...
Python学习基础笔记七十七——json序列化
客户端和服务端之间需要交换数据才能完成各种功能。 假设 服务端程序都是用Python语言开发的话,那么 服务端从数据库中获取的最近的交易列表,可能就是像下面这样的一个Python列表对象: historyTransactions [{time : 20170101070311, #…...
【C++】C++11新特性
文章目录 一、C发展简介二、C11简介三、列表初始化1.统一使用{}初始化2.initializer_list类 四、变量的类型推导1.auto2.decltype3.nullptr 五、范围for循环六、STL中一些变化七、final与override八、新的类功能1.新增默认成员函数2.成员变量的缺省值3.default 和 delete4.fina…...
使用 PyAudio、语音识别、pyttsx3 和 SerpApi 构建简单的基于 CLI 的语音助手
德米特里祖布☀️ 一、介绍 正如您从标题中看到的,这是一个演示项目,显示了一个非常基本的语音助手脚本,可以根据 Google 搜索结果在终端中回答您的问题。 您可以在 GitHub 存储库中找到完整代码:dimitryzub/serpapi-demo-project…...
C++11——多线程
目录 一.thread类的简单介绍 二.线程函数参数 三.原子性操作库(atomic) 四.lock_guard与unique_lock 1.lock_guard 2.unique_lock 五.条件变量 一.thread类的简单介绍 在C11之前,涉及到多线程问题,都是和平台相关的,比如windows和linu…...
力扣每日一题48:旋转图像
题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],…...
操作系统——吸烟者问题(王道视频p34、课本ch6)
1.问题分析:这个问题可以看作是 可以生产多种产品的 单生产者-多消费者问题 2.代码——这里就是由于同步信号量的初值都是1,所以没有使用mutex互斥信号, 总共4个同步信号量,其中一个是 finish信号量...
通讯协议学习之路:CAN协议理论
通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 序、…...
Redis常用配置详解
目录 一、Redis查看当前配置命令二、Redis基本配置三、RDB全量持久化配置(默认开启)四、AOF增量持久化配置五、Redis key过期监听配置六、Redis内存淘汰策略七、总结 一、Redis查看当前配置命令 # Redis查看当前全部配置信息 127.0.0.1:6379> CONFIG…...
卷积神经网络CNN学习笔记-MaxPool2D函数解析
目录 1.函数签名:2.学习中的疑问3.代码 1.函数签名: torch.nn.MaxPool2d(kernel_size, strideNone, padding0, dilation1, return_indicesFalse, ceil_modeFalse) 2.学习中的疑问 Q:使用MaxPool2D池化时,当卷积核移动到某位置,该卷积核覆盖区域超过了输入尺寸时,MaxPool2D会…...
基于图像字典学习的去噪技术研究与实践
图像去噪是计算机视觉领域的一个重要研究方向,其目标是从受到噪声干扰的图像中恢复出干净的原始图像。字典学习是一种常用的图像去噪方法,它通过学习图像的稀疏表示字典,从而实现对图像的去噪处理。本文将详细介绍基于字典学习的图像去噪技术…...
记一次Clickhouse 复制表同步延迟排查
现象 数据从集群中一个节点写入之后,其他两个节点无法及时查询到数据,等了几分钟。因为我们ck集群是读写分离架构,也就是一个节点写数据,其他节点供读取。 排查思路 从业务得知,数据更新时间点为:11:30。…...
Maven的详细安装步骤说明
Step 1: 下载Maven 首先,您需要从Maven官方网站(https://maven.apache.org/)下载Maven的最新版本。在下载页面上,找到与您操作系统对应的二进制文件(通常是.zip或.tar.gz格式),下载到本地。 St…...
金融机器学习方法:K-均值算法
目录 1.算法介绍 2.算法原理 3.python实现示例 1.算法介绍 K均值聚类算法是机器学习和数据分析中常用的无监督学习方法之一,主要用于数据的分类。它的目标是将数据划分为几个独特的、互不重叠的子集或“集群”,以使得同一集群内的数据点彼此相似&…...
移远通信携手MIKROE推出搭载LC29H系列模组的Click boards开发板,为物联网应用带来高精定位服务
近日,移远通信与MikroElektronika(以下简称“MIKROE”)展开合作,基于移远LC29H系列模组推出了多款支持实时动态载波相位差分技术(RTK)和惯性导航(DR)技术的Click Boards™ 开发板&am…...
Spring Cloud 之 Sentinel简介与GATEWAY整合实现
简介 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 熔断 …...
别再只用BERT了!用sentence-transformers库的SBERT,5分钟搞定文本相似度匹配
别再只用BERT了!5分钟用SBERT实现工业级文本相似度匹配 当你在电商平台搜索"轻薄笔记本电脑"时,系统如何从百万商品中精准找到MacBook Air和XPS 13?当你在知识库提问"如何重置路由器密码",客服机器人怎样快速…...
别再只盯着原理了!用TensorRT INT8量化你的YOLOv5模型,实测推理速度翻倍(附完整C++代码)
实战指南:用TensorRT INT8量化加速YOLOv5模型推理(附完整C实现) 当你在深夜调试模型时,是否经历过这样的场景——模型精度达标了,但推理速度却像蜗牛爬行?部署到边缘设备时,显存占用直接爆表&am…...
BMP280实战指南:从硬件连接到多平台代码解析
1. BMP280传感器基础认知 第一次拿到BMP280传感器时,很多人会被它小巧的尺寸所迷惑——这个仅有2.5mm2.0mm0.95mm的小方块,却能同时测量气压和温度。我在多个气象站项目中实测发现,它的温度测量精度可达1℃,气压测量精度1hPa&…...
GetQzonehistory:3步永久备份你的QQ空间记忆,告别数据丢失焦虑
GetQzonehistory:3步永久备份你的QQ空间记忆,告别数据丢失焦虑 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些珍贵的QQ空间说说会随着时间流逝而…...
SOCD Cleaner终极指南:如何解决游戏键盘输入冲突问题
SOCD Cleaner终极指南:如何解决游戏键盘输入冲突问题 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏的世界里,每一次按键都至关重要。你是否曾在激烈的战斗中因为同时按下相反…...
Arduino TFT_eSPI库进阶玩法:用Sprite(精灵图)制作流畅动画和动态仪表盘
Arduino TFT_eSPI库进阶玩法:用Sprite(精灵图)制作流畅动画和动态仪表盘 当你在Arduino项目中使用TFT屏幕时,是否遇到过屏幕闪烁、刷新缓慢的问题?特别是在制作动态界面或动画效果时,直接操作屏幕往往会导致…...
Magnet2Torrent终极指南:如何将磁力链接快速转换为种子文件
Magnet2Torrent终极指南:如何将磁力链接快速转换为种子文件 【免费下载链接】Magnet2Torrent This will convert a magnet link into a .torrent file 项目地址: https://gitcode.com/gh_mirrors/ma/Magnet2Torrent 在P2P资源共享和下载管理中,磁…...
基于认知负荷理论的职场新人算法学习策略:如何循序渐进,避免挫败感。
很多职场新人学算法,卡住的原因并不只是“自己不够聪明”。更常见的情况是:一上来就刷难题、追求速成、同时学太多概念,结果大脑像浏览器开了二十个标签页,越学越乱 😵💫从认知负荷理论看,这种…...
Agent能适配不同行业的合规要求吗?——2026年企业级AI Agent合规技术架构与落地全解析
在2026年的今天,AI Agent已经完成了从“实验性Demo”到“生产级数字员工”的华丽转身。对于企业决策者而言,关注焦点已从“Agent能做什么”转向“Agent在操作中是否合规”。随着《人工智能拟人化互动服务管理暂行办法》等法规的深度施行,合规…...
WinUtil:告别Windows系统臃肿烦恼,一键打造流畅高效的操作体验
WinUtil:告别Windows系统臃肿烦恼,一键打造流畅高效的操作体验 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否…...
