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

【刷题模板】链表、堆栈

算法模板

    • 单链表
    • 双链表
    • 队列
      • 1. 普通队列
      • 2. 循环队列
    • 单调栈
    • 单调队列

单链表


int head, e[N], ne[N], idx;void init()
{head = -1;idx = 0;
}void insert(int a)
{e[idx] = a, ne[idx] = head, head = idx++;
}
void remove()
{head = ne[head]
}

双链表

int e[N], l[N], r[N], idx;void init()
{r[0] = 1, l[1] = 0;idx = 2;
}void insert(int a, int x)
{e[idx] = x;l[idx] = a, r[idx] = r[a];	// a是指针;l[r[a]] = idx, r[a] = idx++;	// idx是插入节点的指针;
}void remove(int a)
{l[r[a]] = l[a];		// r[a]表示a右节点的指针;r[l[a]] = r[a];
}


int stk[N], tt = 0;
stk[++tt] = x;
tt--;
stk[tt];
if (tt > 0)
{}

队列

1. 普通队列

int q[N], hh = 0, tt = -1;
q[++tt] = x;
hh ++;
q[hh];if (hh <= tt)
{}

2. 循环队列

int q[N], hh = 0, tt = 0;
q[tt++] = x;
if (tt == N) tt = 0;hh++;
if (hh == N) hh = 0;q[hh];if (hh != tt)
{}

单调栈

数列:3 4 2 7 5
-1 3 -1 2 2
先考虑暴力做法,然后再优化;

数列: a1, a2, a3, … an;
if x < y
且,a(x) > a(y), 则a(x)永远不会被取到(不会被放入单调栈中);

if std[tt] >= a(i)
tt–;

常见模型:找出每个数左边离它最近的比它大/小的数;
int tt = 0;
for (int i = 1; i <= n; i++)
{while (tt && check(std[tt], i)) tt--;stk[++tt] = i;
}

单调队列

在这里插入图片描述

常见模型: 找出滑动窗口中最大、最小值
int hh = 0, tt = -1;
for (int i = 0; i < n; i++)
{while (hh <= tt && check_out(q[hh]) hh++;while (hh <= tt && check(q[tt], i)) t--;q[++tt] = i;
}
http://www.xdnf.cn/news/942085.html

相关文章:

  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月8日第102弹
  • 06. C#入门系列【自定义类型】:从青铜到王者的进阶之路
  • 星耀8上市品鉴暨北京中和吉晟吉利银河用户中心开业媒体见面会
  • 免费批量去水印工具 - 针对文心一言生成图片
  • DDR供电设计中的VTT与VREF作用和区别
  • leetcode Top100 189.轮转数组
  • global security market 的知识点总结 SMA
  • 给跳绳设计一双卡扣
  • Hilt在android项目中使用的注解说明
  • 设置QDialog的setModal(true)对show()无法阻塞
  • Python 训练营打卡 Day 46
  • 力扣-131.分割回文串
  • 基于fpga的疲劳驾驶检测
  • 【Autosar COM】Marvell 88Q5050 以太网交换机驱动技术解析
  • JavaScript 的意义
  • 山东大学项目实训——基于DeepSeek的智能写作与训练平台(十二)
  • cpp自学 day26(智能指针)
  • 基于算法竞赛的c++编程(23)原码,反码,补码
  • 《双指针》题集
  • [特殊字符]01Linux基础入门教程——从起源到核心概念
  • 高等数学 | 第八章-向量值函数的积分与场论
  • JavaScript 语法结构
  • MySQL 索引失效:六大场景与原理剖析
  • 官网Numpy教程
  • leetcode.多数元素
  • 【PhysUnits】17.1 补充数值后量纲系统实现解析 (dimension.rs)
  • 一键压缩图片工具
  • 2000-2020年各省第三产业增加值占GDP比重数据
  • 网络安全基础
  • Python 调用 C 程序时输出顺序错乱问题分析与解决