1 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 2. 思路和方法 利用辅助栈来存储现有栈的最小值。在入栈和出栈的时候将现有栈和最小值栈进行比较。入栈时,若新值比最小值栈的栈顶还小,则将该值同时push到最小值栈;出栈时,若现有栈的 ...
分类:
其他好文 时间:
2019-08-26 09:20:35
阅读次数:
78
思路: 借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,很显然1≠4,所以我们继续压栈,直到相等以后开始出栈,出栈一个元素,则将出栈顺序向后移动一位,直到不相等,这样循环等压栈顺序遍历完成,如果辅助栈还不为空,说明弹出序列不是该栈的 ...
分类:
其他好文 时间:
2019-08-25 12:05:09
阅读次数:
81
一 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 二 解法1 1 分析 队列的特点是队尾进、队头出,先进先出的结构。而栈是栈顶入栈、栈顶出栈,先进后出的结构。所有用两个栈实现一个队列,那么这两个栈需分别存放入栈顺序队列元素,另一个栈存放相反顺序的队列 ...
分类:
其他好文 时间:
2019-08-22 14:44:54
阅读次数:
96
prototype 函数的prototype属性 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) 原型对象中有一个属性constructor, 它指向函数对象 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型 ...
分类:
Web程序 时间:
2019-08-19 18:46:59
阅读次数:
130
"传送门" 写在前面:为了保护正睿题目版权,这里不放题面,只写题解。 A $70pts:$ 维护一个栈,从一侧向另一侧扫描,如果新加入的元素与当前栈顶相同,则出栈,否则进栈。显然一个子串是括号序列,当且仅当栈为空。 枚举起点,暴力模拟即可。复杂度$O(n^2)$。 $100pts:$ 对于一个右端点 ...
分类:
其他好文 时间:
2019-08-19 09:19:07
阅读次数:
74
Description 详见OJ Solution 第一眼看上去好像斜率$DP$,但仔细一看发现不能用单调队列维护。 然后$GG$。 正解使用单调栈来维护。 我们发现,我们维护的单调栈$g[]$的$a[]$是呈单调不下降的。 对于新加入的点i,我们需要将单调栈中$a[]$大于$a[i]$的弹出栈中, ...
分类:
其他好文 时间:
2019-08-17 18:22:06
阅读次数:
108
前言 在之前完成了词法分析之后,得到了Token流,那么接下来就是实现语法分析器来输入Token流得到抽象语法树 (Abstract Syntax Tree,AST) 。但是在完成这个语法分析器不像词法分析器,直接手撸就好了,还是需要一些前置的知识。 这些前置知识在之前的博文都有提起过 "之前的博文 ...
分类:
其他好文 时间:
2019-08-17 10:54:33
阅读次数:
114
栈的概念与数据结构 栈(有时称为“后进先出栈”)是一个元素的有序集合,其中添加移除新元素总发生在同一端。这一端通常称为“顶部”。与顶部对应的端称为“底部”。栈的底部很重要,因为在栈中靠近底部的元素是存储时间最长的。最近添加的元素是最先会被移除的。这种排序原则有时被称为 LIFO,后进先出。它基于在集 ...
分类:
其他好文 时间:
2019-08-17 01:05:29
阅读次数:
57
1、遍历压栈,出栈打印,前进后出 2.递归不好 链表非常长的时候会导致调用很深!! 可能导致函数调用栈溢出!! ...
分类:
其他好文 时间:
2019-08-16 22:26:53
阅读次数:
83
用Google搜异常信息,肯定都访问过 "Stack Overflow网站" 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面函数间的相互调用是怎么实现的,以及什么情况下会发生栈溢出 1 栈的意义 先看一个简单的C程序 ...
分类:
其他好文 时间:
2019-08-16 00:42:10
阅读次数:
108