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

Leetcode 刷题笔记1 单调栈part02

leetcode 42 接雨水

本题用双指针法更为浅显易懂

双指针法:

class Solution:def trap(self, height: List[int]) -> int:leftheight, rightheight = [0] * len(height), [0] * len(height)ans = 0leftheight[0] = height[0]for i in range(1, len(height)):leftheight[i] = max(height[i], leftheight[i - 1])rightheight[-1] = height[-1]for i in range(len(height) - 2, -1, -1):rightheight[i] = max(height[i], rightheight[i + 1])for i in range(len(height)):total = min(leftheight[i], rightheight[i]) - height[i]ans += totalreturn ans

单调栈:

class Solution:def trap(self, height: List[int]) -> int:stack = [0]ans = 0for i in range(1, len(height)):if height[i] < height[stack[-1]]:stack.append(i)elif height[i] == height[stack[-1]]:stack.pop()stack.append(i)else:while stack and height[i] > height[stack[-1]]:mid_height = height[stack[-1]]stack.pop()if stack:right_height = height[i]left_height = height[stack[-1]]h = min(right_height, left_height) - mid_heightw = i - stack[-1] - 1ans += h * wstack.append(i)return ans

leetcode 84 柱状图的最大的矩形

class Solution:def largestRectangleArea(self, heights: List[int]) -> int:heights.insert(0, 0)heights.append(0)stack = [0]ans = 0for i in range(1, len(heights)):while stack and heights[i] < heights[stack[-1]]:mid_height = heights[stack[-1]]stack.pop()if stack:area = (i - stack[-1] - 1) * mid_heightans = max(area, ans)stack.append(i)return ans

双指针法:
 

class Solution:def largestRectangleArea(self, heights: List[int]) -> int:n = len(heights)min_left_index = [0] * nmin_right_index = [0] * nmin_left_index[0] = -1result = 0for i in range(1, n):temp = i - 1while temp >= 0 and heights[temp] >= heights[i]:temp = min_left_index[temp]min_left_index[i] = tempmin_right_index[n - 1] = nfor i in range(n - 2, -1, -1):temp = i + 1while temp < n and heights[temp] >= heights[i]:temp = min_right_index[temp]min_right_index[i] = tempfor i in range(len(heights)):area = heights[i] * (min_right_index[i] - min_left_index[i] -1)result = max(result, area)return result

相关文章:

Leetcode 刷题笔记1 单调栈part02

leetcode 42 接雨水 本题用双指针法更为浅显易懂 双指针法&#xff1a; class Solution:def trap(self, height: List[int]) -> int:leftheight, rightheight [0] * len(height), [0] * len(height)ans 0leftheight[0] height[0]for i in range(1, len(height)):lefth…...

ai本地化 部署常用Ollama软件

现在用最简单的方式介绍一下 Ollama 的作用和用法&#xff1a; Ollama 是什么&#xff1f; Ollama 是一个让你能在自己电脑上免费运行大型语言模型&#xff08;比如 Llama 3、Mistral 等&#xff09;的工具。 相当于你本地电脑上有一个类似 ChatGPT 的 AI&#xff0c;但完全…...

vllm部署QwQ32B(Q4_K_M)

vllm部署QwQ32B(Q4_K_M) Ollama是一个轻量级的开源LLM推理框架&#xff0c;注重简单易用和本地部署&#xff0c;而VLLM是一个专注于高效推理的开源大型语言模型推理引擎&#xff0c;适合开发者在实际应用中集成和使用。两者的主要区别在于Ollama更注重为用户提供多种模型选择和…...

VLLM:虚拟大型语言模型(Virtual Large Language Model)

VLLM&#xff1a;虚拟大型语言模型&#xff08;Virtual Large Language Model&#xff09; VLLM指的是一种基于云计算的大型语言模型的虚拟实现。它通常是指那些由多个服务器组成的分布式计算环境中的复杂机器学习模型&#xff0c;这些模型能够处理和理解大量的文本数据。VLLM的…...

企业内网监控软件的选型与应用:四款主流产品的深度剖析

在数字化办公的时代背景下&#xff0c;企业内部网络管理的重要性愈发显著。对于企业管理者而言&#xff0c;如何精准掌握员工工作状态&#xff0c;保障网络安全与工作效率&#xff0c;已成为亟待解决的关键问题。本文将深入剖析四款主流企业内网监控软件&#xff0c;探讨其功能…...

蓝桥杯省赛(2024)

问题描述 小蓝和朋友们在玩一个报数游戏。由于今年是 20242024 年&#xff0c;他们决定要从小到大轮流报出是 2020 或 2424 倍数的正整数。前 1010 个被报出的数是&#xff1a;20,24,40,48,60,72,80,96,100,12020,24,40,48,60,72,80,96,100,120。请问第 2024202420242024202420…...

Qt窗口控件之字体对话框QFontDialog

字体对话框QFontDialog QFontDialog 是 Qt 内置的字体对话框&#xff0c;用户能够在这里选择字体的样式、大小&#xff0c;设置加粗和下划线并将结果作为返回值返回。QFontDialog 最好使用其提供的静态函数实例化匿名对象&#xff0c;并获取返回值最为用户选择字体设置的结果。…...

Qt QML实现视频帧提取

## 前言 视频帧率&#xff08;Frame Rate&#xff09;是指视频播放时每秒显示的画面帧数&#xff0c;通常用fps&#xff08;Frames Per Second&#xff09;来表示。视频是由一系列静止的图像帧组成的&#xff0c;而视频帧率则决定了这些图像帧在单位时间内播放的速度。较高的视…...

网络性能指标

目录 时延 延迟抖动 丢包率 时延&#xff1a;数据传输的快慢&#xff0c;影响实时性。抖动&#xff1a;延迟的变化&#xff0c;影响稳定性。丢包率&#xff1a;数据丢失的比例&#xff0c;影响可靠性。 时延 定义&#xff1a;时延是指数据从发送端传输到接收端所需的时间&…...

在 Ubuntu 服务器上使用宝塔面板搭建博客

&#x1f4cc; 介绍 在本教程中&#xff0c;我们将介绍如何在 Ubuntu 服务器 上安装 宝塔面板&#xff0c;并使用 Nginx PHP MySQL 搭建一个博客&#xff08;如 WordPress&#xff09;。 主要步骤包括&#xff1a; 安装宝塔面板配置 Nginx PHP MySQL绑定域名与 SSL 证书…...

计算机组成与接口16

1.0的表示方法唯一的有补码&#xff0c;移码&#xff0c;ASCII码 2.可以多次编程的只读存储器是EPROM,掩膜式ROM 3.8259A芯片可设置成脉冲边沿触发方式&#xff1b;全嵌套方式&#xff1b;自动中断结束方式&#xff1b;特殊屏蔽方式 4.计算机系统中的总线按层次可以分为板级…...

有了大语言模型还需要 RAG 做什么

一、百炼平台简介 阿里云的百炼平台就像是一个超级智能的大厨房&#xff0c;专门为那些想要做出美味AI大餐的企业和个人厨师准备的。你不需要从头开始做每一道菜&#xff0c;因为这个厨房已经为你准备了很多预制食材&#xff08;预训练模型&#xff09;&#xff0c;你可以根据…...

【从0到1搞懂大模型】RNN基础(4)

先说几个常用的可以下载数据集的地方 平台&#xff1a;kaggle&#xff08;https://www.kaggle.com/datasets&#xff09; 和鲸社区&#xff08;https://www.heywhale.com/home&#xff09; 阿里天池&#xff08;https://tianchi.aliyun.com/&#xff09; 其他&#xff1a;海量公…...

【第K小数——可持久化权值线段树】

题目 代码 #include <bits/stdc.h> using namespace std;const int N 1e5 10;int a[N], b[N]; int n, m, len; int rt[N], idx; // idx 是点分配器struct node {int l, r;int s; } tr[N * 22];int getw(int x) {return lower_bound(b 1, b len 1, x) - b; }int bui…...

直流减速电机控制实验:Simulink应用层开发(1)

文章目录 1 阶段目标2 功能需求3 需求拆解及方案研究3.1 需求拆解3.2 按键指令识别3.3 电机状态转换3.4 脉宽及启停判断4 总结1 阶段目标 本文是《直流减速电机控制实验》的第三部分,会通过图文结合的方式,手把手带读者操作Simulink工具进行直流减速电机的应用层开发。 本章…...

本地部署Deep Seek-R1,搭建个人知识库——笔记

目录 一、本地部署 DeepSeek - R1 1&#xff1a;安装Ollama 2&#xff1a;部署DeepSeek - R1模型 3&#xff1a;安装Cherry Studio 二、构建私有知识库 一、本地部署 DeepSeek - R1 1&#xff1a;安装Ollama 1.打开Ollama下载安装 未科学上网&#xff0c;I 先打开迅雷再下…...

【软考-架构】5.3、IPv6-网络规划-网络存储-补充考点

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 IPv6网络规划与设计建筑物综合布线系统PDS&#x1f4af;考试真题第一题第二题 磁盘冗余阵列网络存储技术其他考点&#x1f4af;考试真题第一题第二题 IPv6 网络规划与设计…...

fastapi+angular外卖系统

说明&#xff1a; fastapiangular外卖系统 1.美食分类&#xff08;粥&#xff0c;粉&#xff0c;面&#xff0c;炸鸡&#xff0c;炒菜&#xff0c;西餐&#xff0c;奶茶等等&#xff09; 2.商家列表 &#xff08;kfc&#xff0c;兰州拉面&#xff0c;湘菜馆&#xff0c;早餐店…...

Oracle静默安装方法

Web服务器上面的Linux一般是不会有图形界面的&#xff0c;所有通过图形界面来安装Linux的方式在没有图形界面的Linux上面是行不通的&#xff0c;我们要使用的安装方式叫做Linux的静默安装。即在没有图形界面的Linux上面安装。 1. 下载地址 http://www.oracle.com/technetwork…...

鸿蒙路由 HMRouter 配置及使用 三 全局拦截器使用

1、前期准备 简单封装一个用户首选项的工具类 import { preferences } from "kit.ArkData";// 用户首选项方法封装 export class Preferences {private myPreferences: preferences.Preferences | null null;// 初始化init(context: Context, options: preference…...

计算机视觉——深入理解卷积神经网络与使用卷积神经网络创建图像分类算法

引言 卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称 CNNs&#xff09;是一种深度学习架构&#xff0c;专门用于处理具有网格结构的数据&#xff0c;如图像、视频等。它们在计算机视觉领域取得了巨大成功&#xff0c;成为图像分类、目标检测、图像分…...

永磁同步电机无速度算法--拓展卡尔曼滤波器

一、原理介绍 以扩展卡尔曼滤波算法为基础&#xff0c;建立基于EKF算法的估算转子位置和转速的离散模型。 实时性是扩展卡尔曼滤波器的一种特征&#xff0c;所以它可实时跟踪系统的状态并进行有效的输出&#xff0c;同时&#xff0c;它可以减少干扰、抑制噪声&#xff0c;其效…...

电机控制常见面试问题(十五)

文章目录 一、电机气隙二、电气时间三.电机三环控制详解四.驱动板跳线意义 一、电机气隙 电机气隙是定子和转子之间的空隙&#xff0c;防止钉子转子运转时物理接触&#xff0c;此外&#xff0c;气隙是磁路的重要环节&#xff0c;磁场需通过气隙传递能量&#xff0c;但其较高的…...

a2字幕分享

1. 沟通communication Hey everybody Welcome to this A2 English listening practice video. You can use this video to practice your listening and comprehension as I speak. Before we start, remember to download the Listening Time podcast and become a member a…...

基于cat1的多传感器融合的贵重资产管理解决方案项目说明书

一、产品需求 在物流运输中&#xff0c;搭载 Cat 1 模块的贵重货物跟踪设备&#xff0c;可将货物的位置、震动、温湿度等数据及时传输给物流调度中心&#xff0c;以便及时应对运输途中可能出现的问题&#xff0c;如路线偏离、货物受损风险等 。而且&#xff0c;Cat 1 依托成熟的…...

deepseek使用记录23——我们的遭遇

世界观设定 时间&#xff1a;近未来2035年&#xff0c;全球进入"数字绩效社会"地点&#xff1a;重庆赛博朋克风格的"云端之城"&#xff0c;外卖骑手被称为"数据蜂鸟"核心科技&#xff1a;情感区块链系统&#xff0c;人类情绪波动可转化为能量币…...

【CF】Day9——Codeforces Round 953 (Div. 2) BCD

B. New Bakery 题目&#xff1a; 思路&#xff1a; 被标签害了&#xff0c;用什么二分&#xff08; 很简单的思维题&#xff0c;首先如果a > b&#xff0c;那么全选a就行了&#xff0c;还搞啥活动 否则就选 b - a 天来搞活动&#xff0c;为什么&#xff1f; 首先如果我…...

PEFT简介

以下是关于 PEFT&#xff08;Parameter-Efficient Fine-tuning&#xff09; 的简介&#xff0c;涵盖其定义、核心思想、常见方法及应用场景&#xff1a; 1. 什么是PEFT&#xff1f; PEFT&#xff08;参数高效微调&#xff09;是机器学习领域的一种技术&#xff0c;专为预训练大…...

harmonyOS NEXT开发与前端开发深度对比分析

文章目录 1. 技术体系概览1.1 技术栈对比1.2 生态对比 2. 开发范式比较2.1 鸿蒙开发范式2.2 前端开发范式 3. 框架特性对比3.1 鸿蒙 Next 框架特性3.2 前端框架特性 4. 性能优化对比4.1 鸿蒙性能优化4.2 前端性能优化 5. 开发工具对比5.1 鸿蒙开发工具5.2 前端开发工具 6. 学习…...

Unity小框架之单例模式基类

单例模式&#xff08;Singleton Pattern&#xff09;是一种常用的创建型设计模式&#xff0c;其核心目标是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。它常用于需要控制资源访问、共享配置或管理全局状态的场景&#xff08;如数据库连接池、日志管理器、应用配置…...