单调队列与栈
一.题
1.

思路: 构建小压大的单调递减栈,对于每个栈的元素都进行处理并加到结果上
class Solution {
public:int sumSubarrayMins(vector<int>& arr) {int stk[10000000],top = 0;long long ans = 0;for(int i =0;i<arr.size();i++){while(top&&arr[i]<arr[stk[top-1]]){int cur = stk[--top];int l = top==0?-1:stk[top-1];ans = (ans+(long long)(cur-l)*(i-cur)*arr[cur])%(1000000007);}stk[top++] = i;}while(top){int cur = stk[--top];int l = top==0?-1:stk[top-1];ans = (ans+(long long)(cur-l)*(arr.size()-cur)*arr[cur])%(1000000007);}return ans;}
};
2.

思路: 以每排都为一次底,然后压缩和第一题类似
#include <vector>
#include <string>
#include <algorithm>
#include <climits>using namespace std;class Solution {
public:int maximalRectangle(vector<string>& matrix) {if (matrix.empty() || matrix[0].empty()) return 0;int rows = matrix.size();int cols = matrix[0].size();vector<int> height(cols, 0); int ans = 0; for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {if (matrix[i][j] == '1') height[j] += 1; else height[j] = 0; }int stk[cols + 2], top = 0;stk[top++] = -1; for (int j = 0; j <= cols; j++) {while (top > 1 && (j == cols || height[stk[top - 1]] >= height[j])) {int curHeight = height[stk[--top]]; int width = j - stk[top - 1] - 1; int area = curHeight * width; ans = max(ans, area); }stk[top++] = j; }}return ans;}
};
3.

思路:用单调栈收集每个可能是低点的位置,使得栈严格小压大,单调递增,然后方向遍历全部的元素与栈中元素比较来找距离最远的坡
class Solution {
public:int maxWidthRamp(vector<int>& nums) {int stk[50050],top = 0;int ans = 0;stk[top++] = 0;for(int i =0;i<nums.size();i++){if(nums[i]<nums[stk[top-1]])stk[top++] = i;}for(int i = nums.size()-1;i>=0;i--){while(top&&nums[i]>=nums[stk[top-1]]){int cur = stk[--top];int temp_l = i - cur;ans = max(ans,temp_l);}}return ans;}
};
4.

思路:还是利用单调栈的特性,大压小,开头从栈底部开始,同时用一个数组标记是不是在栈中
#include <string>
#include <vector>using namespace std;class Solution {
public:string removeDuplicateLetters(string s) {int counts[26] = {0}; bool inStack[26] = {false}; char stk[10005];int top = 0; for (char ch : s) counts[ch - 'a']++;for (char ch : s) {if (inStack[ch - 'a']) {counts[ch - 'a']--;continue;}while (top > 0 && stk[top - 1] > ch && counts[stk[top - 1] - 'a'] > 0) {inStack[stk[top - 1] - 'a'] = false; top--; }stk[top++] = ch;inStack[ch - 'a'] = true; counts[ch - 'a']--; }string result;for (int i = 0; i < top; i++) result += stk[i];return result;}
};
5.

思路:因为,鱼是吃右边的更小的鱼,所以方向遍历后往前,因为小不能吃大,为小压大,在用个cnt数组统计每条鱼进行的场数,用max来求最大值
#include <iostream>
#include <vector>
#include <stack>
using namespace std;int main() {int n,ans = -1;cin>>n;vector<int> fish(n);for(int i = 0; i < n; i++)cin>>fish[i];vector<int> cnt(n,0);stack<int> stk;for(int i = n-1; i >= 0; i--){while(!stk.empty() && fish[i]>fish[stk.top()]){int cur = stk.top();stk.pop();cnt[i] = max(cnt[i]+1,cnt[cur]); }stk.push(i);ans = max(ans,cnt[i]);}cout<<ans;return 0;
}
6.算法竞赛进阶指南

思路:模拟过程即可
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include<queue>using namespace std;int main() {int cnt[14];int time[14];vector<vector<char>>tt(14, vector<char>(5, 0));for (int i = 1; i <= 13; i++){cnt[i] = 4; time[i] = 0;for (int j = 1; j <= 4; j++)cin >> tt[i][j];}cnt[13] = 1;while (cnt[13] <= 4) {char temp = tt[13][cnt[13]++];if (temp == 'K') continue;while (temp != 'K') {int num = 0;if (temp == 'A')num = 1;else if (temp == '0')num = 10;else if (temp == 'J')num = 11;else if (temp == 'Q')num = 12;else num = temp - '0';time[num]++;if (cnt[num] == 0)break;temp = tt[num][cnt[num]--];}}int ans = 0;for (int i = 1; i <= 12; i++) {if (time[i] == 4)ans++;}cout << ans;return 0;
}
相关文章:
单调队列与栈
一.题 1. 思路: 构建小压大的单调递减栈,对于每个栈的元素都进行处理并加到结果上 class Solution { public:int sumSubarrayMins(vector<int>& arr) {int stk[10000000],top 0;long long ans 0;for(int i 0;i<arr.size();i){while(top…...
Matlab 多项式曲线拟合(三维)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 对于高维空间曲线的拟合,参数化是一种非常好的方式,可以让我们很容易得到我们想要的目标曲线。 假设给定一组数据点 ( u i , x i ) 、 ( u i ...
机器翻译同样的文本,是从英语翻译成日语更准确还是中文翻译成日语更准确
在大多数情况下,从英语翻译成日语会比从中文翻译成日语更准确,原因如下: 1. 语言结构的相似性 英语和日语的句子结构更接近,特别是在语法、从句使用、定语位置等方面。例如,日语和英语都使用 SVO 结构(主…...
MAC 系统关屏幕后电量消耗极快 Wake Requests
日志为 Wake Requests [*processdasd requestSleepService…info"com.apple.alarm.user-invisible-com.apple.calaccessd… 本人有效方法为: sudo pmset -a hibernatemode 25 sudo pmset -a standby 0 sudo pmset -a autopoweroff 0 会导致hibernatemode 25是…...
golangAPI调用deepseek
目录 1.deepseek官方API调用文档1.访问格式2.curl组装 2.go代码1. config 配置2.模型相关3.错误处理4.deepseekAPI接口实现5. 调用使用 3.响应实例 1.deepseek官方API调用文档 1.访问格式 现在我们来解析这个curl 2.curl组装 // 这是请求头要加的参数-H "Content-Type:…...
提供可传递的易受攻击的依赖项
问题如图所示: 原因:okhttp3.version 3.14.9 版本存在部分漏洞,在 maven 仓库是可以看到的 maven 地址: maven 下图中 Vulnerabilities 即为漏洞 处理:换一个无漏洞的版本即可...
2.14学习记录
Web flag直接读取不就行了? 代码审计: <?php highlight_file(index.php); # 我把flag藏在一个secret文件夹里面了,所以要学会遍历啊~ error_reporting(0); $J1ng $_POST[J]; $Hong $_POST[H]; $Keng $_GET[K]; $Wang $_GET[W]; $d…...
xpath定位--鼠标悬停显示的按钮
UI自动化定位界面元素的过程中,会遇到鼠标悬停才会显示的按钮,鼠标移开就不显示了,无法通过点击它直接定位到元素位置 搜索到这篇文档,办法很好用,特此记录下:chrome调试鼠标悬停后出现的元素_控制台元素调…...
鸿蒙Harmony打包脚本使用整理
最近整理鸿蒙打包相关事宜,遇到很多文档描述不清晰的问题,好在都通过鸿蒙团队的技术支持解决掉了。这里整理一下。 command-line-tools的命令官网基本都有,这里整理几个常用的,还有就是遇到的问题。 hvigorw位置:/comm…...
【C语言】C语言 停车场管理系统的设计与实现(源码)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设…...
在Autonomous DB中创建训练数据集
在Autonomous DB中创建训练数据集 概述背景步骤解析1. 定义公司术语表2. 使用SQL将数据转换为JSON格式3. 使用SPool命令将SQL查询结果输出为JSON文件4. 查看生成的JSON文件 结果示例结论 概述 在机器学习中,构建高质量的训练数据集是模型成功的关键,尤其…...
Adapting to Length Shift: FlexiLength Network for Trajectory Prediction
概要 轨迹预测在各种应用中发挥着重要作用,包括自动驾驶、机器人技术和场景理解。现有方法通常采用标准化的输入时长,集中于开发紧凑神经网络,以提高在公共数据集上的预测精度。然而,当这些模型在不同观测长度下进行评估时&#…...
张量循环运算:内存溢出原因及解决
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 内存溢出解决方法致谢 内存溢出 使用AlexNet遍历大量图像进行指标运算(LP…...
【Qt】:概述(下载安装、认识 QT Creator)
🌈 个人主页:Zfox_ 🔥 系列专栏:Qt 目录 一:🔥 介绍 🦋 什么是 QT🦋 QT 发展史🦋 Qt版本🦋 QT 优点 一:🔥 搭建Qt开发环境 ǹ…...
11、《Web开发性能优化:静态资源处理与缓存控制深度解析》
Web开发性能优化:静态资源处理与缓存控制深度解析 一、性能优化的核心战场:静态资源处理 现代Web应用静态资源体积占比普遍超过70%,以典型Vue项目为例: dist/ ├─ css/ # 38% 体积 ├─ js/ # 45% 体积 └─ img…...
【Linux】多线程 -> 从线程概念到线程控制
线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行,本质是在进程地址空间内运行。在Linux系统中,在CPU眼…...
用什么办法能实现ubuntu里面运行的自己开发的python程序能自动升级。
要实现Ubuntu中自己开发的Python程序自动升级,可以通过以下几种方式: 1. 使用 Git 仓库 定时任务 如果你的Python程序托管在Git仓库中,可以通过定时拉取最新代码来实现自动升级。 步骤: 确保Python程序在Git仓库中。在Ubuntu上…...
java处理pgsql的text[]类型数据问题
背景 公司要求使用磐维数据库,于是去了解了这个是基于PostgreSQL构建的,在使用时有场景一条图片数据中可以投放到不同的页面,由于简化设计就放在数组中,于是使用了text[]类型存储;表结构 #这是一个简化版表结构&…...
LeetCode 热门100题-字母异位词分组
2.字母异位词分组 题目描述: 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan&q…...
耐张线夹压接图片智能识别
目录 一、图片压接部位定位1、图像准备2、人工标注3、训练4、推理5、UI界面 压接状态智能识别 一、图片压接部位定位 ,往往X射线照片是一个大图,进行图片压接部位定位目的是先找到需识别的部位,再进行识别时可排除其他图像部位的干扰&#x…...
流式深度强化学习突破“流式壁垒”:“意图更新”算法性能比肩SAC,计算量仅1/140
一脚油门,开出了多大的坑传统梯度学习的步长规定参数每次移动多大,但对函数输出改变多少缺乏控制。就像驾车学习停车入库,教练规定每次「踩油门0.1秒」,但不同路况下车子前进距离差异大,有时差一厘米入库,有…...
Rust Cargo工作空间:项目组织与依赖管理
Rust Cargo工作空间:项目组织与依赖管理 引言 Cargo是Rust的官方构建工具和包管理器。工作空间(Workspace)是Cargo的重要特性,允许将多个相关的crate组织在一起,共享依赖和配置。 本文将深入探讨Cargo工作空间的使用方法、最佳实践和高级配置…...
打车VS地铁VS共享单车?成本/时间/可靠性三维测评(实测17次,误差±12秒)
更多请点击: https://intelliparadigm.com 第一章:奇点智能技术大会公共交通路线 前往奇点智能技术大会主会场(上海张江科学会堂)的公共交通方案已全面优化,支持实时路径规划与多模态换乘。推荐使用「MetroBus步行」组…...
【微电网优化】基于改进自适应粒子群算法的孤岛微电网PID参数优化设计与Matlab仿真
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz…...
战略洞察:没有退路就是胜利之路
目录 一、《没有退路就是胜利之路》核心知识点总结 1.1 华为文化发展历程的阶段性特征 1.2 华为核心价值观体系解析 1.3 华为文化的洋葱模型与落地机制 1.4 华为文化传承的系统化机制 二、战略思维维度的深度解析与启示 2.1 "没有退路就是胜利之路" 的战略哲学…...
从选型到调试:MCP2517FD与ATA6563收发器搭配实战避坑指南
从选型到调试:MCP2517FD与ATA6563收发器搭配实战避坑指南 在工业控制和车载电子系统中,CAN FD总线技术正逐步取代传统CAN总线,成为高速数据传输的新标准。作为硬件工程师,我们常常面临这样的挑战:如何在有限的项目周期…...
全面掌握Wand-Enhancer:零成本解锁WeMod Pro高级功能的实用攻略
全面掌握Wand-Enhancer:零成本解锁WeMod Pro高级功能的实用攻略 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 想免费体验WeMod Pro的所有高…...
别再忍受龟速下载了!实测国内15个Anaconda镜像站,教你一键换源(附测速工具)
告别卡顿!国内Anaconda镜像站深度评测与智能换源实战指南 每次conda install等上半小时?看着进度条像蜗牛爬?作为Python开发者,包管理工具的下载速度直接决定了工作效率。上周帮团队调试一个数据分析项目时,有位同事的…...
QMCDecode:终极macOS QQ音乐加密格式免费转换解决方案
QMCDecode:终极macOS QQ音乐加密格式免费转换解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…...
AI提示词工程实战:结构化模板提升开发效率与代码质量
1. 项目概述:一个为开发者量身打造的AI提示词库如果你和我一样,每天都要和ChatGPT、Cursor、GitHub Copilot这些AI编程助手打交道,那你肯定也经历过这样的时刻:面对一个复杂的代码审查任务,或者一个棘手的性能优化问题…...
