定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
1、用两个栈。2、用迭代器。3、用其他辅助集合类...
分类:
其他好文 时间:
2016-05-14 11:30:07
阅读次数:
177
题目:实现一个包含min函数的栈,min和push,pop都是o(1)时间思路:
采用一个辅助的栈,来存储不同阶段的最小值
-
代码:push(int value){
//data是数据栈,min是辅助栈用来存储最小值
data.push(value);
if(min.size() < 0 || value < min.top()){
min.push(v...
分类:
其他好文 时间:
2016-05-14 06:50:33
阅读次数:
251
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
#include
#include
#include
typedef struct MinStackElement
{
int data;
int min;
}MinStackElement_T;
typedef struct MinStack...
分类:
其他好文 时间:
2016-05-06 12:53:15
阅读次数:
125
求各种数据类型所占用的字节数可调用sizeof函数,求各种数据类型的最大值可以调用limits标准库中的numeric_limits::max(),numeric_limits::min()函数 #include #include #include using namespace std; int ... ...
分类:
编程语言 时间:
2016-04-24 11:12:27
阅读次数:
136
题目描述:实现一个栈,并且实现一个min函数用来找当前栈中最小的元素分析:要找到栈中最小的元素,需要借助一个辅助栈,来存放当前栈中最小的元素。入栈的时候,第一个入栈的元素,也给辅助栈入栈,此后每次入栈的元素先与辅助栈的栈顶元素比较,如果小于或等于辅助栈的栈顶元..
分类:
其他好文 时间:
2016-04-09 01:42:58
阅读次数:
228
需要O(1)时间求出最小值。如果换成最大值,那就和“滑动窗口的最大值”一题思路差不多了。 用一个栈保存元素,用另一个栈来存储最小值,如果新增的元素比栈顶元素小则压入,否则不压入。 如果检测到第一个栈把最小元素弹出了,那么另一个栈也弹出栈顶元素。 “滑动窗口的最大值”更加复杂一点,而且是用deque保 ...
分类:
其他好文 时间:
2016-03-29 23:56:35
阅读次数:
189
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
class Solution {
public:
stack stack1;
stack helpStack;//辅助栈,存放最小值
void push(int value)
{
stack1.push(value);
...
分类:
编程语言 时间:
2016-03-09 13:05:38
阅读次数:
177
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数。在该栈中,调用 min、push 及 pop 的时间复杂度都是 0(1) 分析 要在O(1)的时间获取最小元素,需要将这个最小元素保存下来。但只用一个变量去保存最小的元素可以吗?如果在使用栈的过程中将这个最小元素pop
分类:
编程语言 时间:
2016-02-18 21:31:39
阅读次数:
194
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。首先:要决定使用链表结构实现还是顺序结构实现,对于顺序结构实现,当数据满的情况下进行Push时,需要开辟新的数组,进行复制,因此不能保证Push的时间复杂度为..
分类:
其他好文 时间:
2016-01-02 16:32:39
阅读次数:
255
问题描述: 定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。 要求函数min、push 以及pop 的时间复杂度都是O(1)。 ? 双倍空间实现: 保存2个栈,分别是元素和当前最小值。 ? 压缩空间实现: ?...
分类:
其他好文 时间:
2015-10-20 18:02:24
阅读次数:
141