题目:实现一个包含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
需要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
题目来源:《剑指offer》面试题21 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push以及pop的时间复杂度都是O(1)。 分析:假设用于存储主要数据的栈称为数据栈。我们增加一个辅助栈,它的栈顶元素永远是当前数据栈中元素的最小值。...
分类:
编程语言 时间:
2015-09-22 01:17:17
阅读次数:
233
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。分析:使用两个栈,一个正常存取元素,一个栈用来存储最小的元素,代码如下: 1 import java.util.Stack; 2 3 public class Solution { 4 5 Stack s1...
分类:
其他好文 时间:
2015-09-03 11:35:19
阅读次数:
133
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输出min的话,需再定义一个stack,当push的值大于最小值时,压入最小值,若小于的话,压入value。 1 class Solution { 2 private: 3 stack s; 4 stack ass...
分类:
其他好文 时间:
2015-08-27 22:29:17
阅读次数:
158
题目
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数.在该栈中,调用min,push及pop的时间复杂度都是O(1).思路
使用两个栈,一个数据栈用来存放数据,一个辅助栈用来存放最小值.#include
#include template class StackWithMin
{
publi...
分类:
其他好文 时间:
2015-08-20 16:55:34
阅读次数:
145
1.设计包含min函数的栈[数据结构]题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。2.子数组的最大和[算法]题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个...
分类:
编程语言 时间:
2015-07-26 22:22:45
阅读次数:
212
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。思路:定义两个栈,一个栈data用来正常压入、弹出数据,另一个栈min,压入的时候压入当前最小的数,弹出的时候也弹出最小的数当压入栈的时候,如果压入的数据小于当前栈中最小...
分类:
其他好文 时间:
2015-06-11 20:49:52
阅读次数:
113