首页 > 其他分享 >栈&单调栈笔记

栈&单调栈笔记

时间:2022-10-04 21:01:16浏览次数:50  
标签:back long vector 笔记 push stack 单调 size

先进后出,由于 STL 中的 stack 内存分配逻辑是 deque,常数极大,所以通常用数组或 vector 模拟。

对于数组模拟栈,数组的第一个位置通常被设为栈顶,下面是已被封装成类的代码。

struct stackr{
	long long sta[10000];
	int to=-1;
	void push(long long push_in){sta[++to]=push_in;};
	void pop(){--to;};
	int size(){return to+1;};
	bool empty(){return to<=-1;};
	long long top(){return sta[to];};
};

对于使用 vector 模拟栈,不难发现,stackvector 有许多类似之处:

stack的操作 vector的操作
push(x) push_back(x)
pop() pop_back()
top() back()
size() size()
empty() empty()

单调栈

常用于求解下一个大于或小于 \(x\in \mathbb Z\) 的位置,时间复杂度常常是 \(\mathcal O(n)\)。

标签:back,long,vector,笔记,push,stack,单调,size
From: https://www.cnblogs.com/wanguan/p/16754151.html

相关文章

  • C++自学笔记 多态性的实现 How virtual work in C++
     静态联编所支持的多态性称为编译时的多态性。当调用重载函数时,编译器可以根据调用时所使用的实参在编译时就确定下应调用哪个函数。动态联编所支持的多态性称为运行时......
  • C++自学笔记 多态性 Polymorphism
      virtual关键字虚函数/虚方法  前缀virtual关键字表示子类父类有联系 virtual的作用是告诉编译器,对该函数的调用是通过指针或者引用的话,在运行时才可以确......
  • 【学习笔记】索引
    索引mysql官方对索引的定义为:索引(index)是帮助Mysql高效获取数据的数据结构,提取句子主干,就可以得到索引的本质:索引是数据结构。 索引的分类主键索引(PRIMARYKEY)......
  • MYSQL学习笔记之存储引擎
    (1)什么是存储引擎??  存储引擎是MYSQL中特有的一个术语,是一个表存储/组织数据的方式。(不同的存储引擎,表存储数据的方式不同)(2)如何给表添加/指定“存储引擎”呢?mysql>showcr......
  • Mybatis学习笔记
    1、简介1.1、什么是MyBatis?MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的......
  • 【学习笔记】事务
    事务什么是事务?要么都成功,要么都失败以转账为例:有两条sql,第一条是A给B转账,第二条是B接收A的转账这两条语句,必须都成功,或都失败,不能一条成功,一条失败 事务原则:AC......
  • 初学C语言笔记221004动态内存管理
    constint*consta=&b;//3intconst*consta=&b;//4第三个a是静态的指针(第二个const修饰),指向int,这个int是静态的(第一个const修饰)第四个a是静态的......
  • SAS - Macro 笔记
    SASMacro由两部分组成:MacrovariablesandMacro.Macrovariable:命名规范:需要遵循SAS变量命名规范(不超过32characters,以下划线或字母开始,只包含数字、字母或......
  • 学习笔记——Django项目中请求与响应(json数据)
    2022-10-04测试json数据与Django项目与pycharm连接,在“postman”软件中。“postman”是一个接口测试软件。下载方式问度娘。(1)在“postman”中设置“json”连接请求 ......
  • 观看尚硅谷redis6的学习笔记
     文章目录笔记,资料下载建议先补一下数据结构2.redis介绍3.常用的五大基本数据类型1.对key的基本操作Redis字符串(String)Redis列表(List)Redis集合(Set)Redi......