问题描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 方法1: 官方: 今天课太多了,明 ...
分类:
其他好文 时间:
2018-09-14 00:06:38
阅读次数:
227
看起来挺简单,但是写起来才有坑。 模仿java里面的栈 1、用数组存放元素 2、设置size和index,push和pop只需要移动index就好了,不需要处理元素。 3、初始化为16,如果满了要扩容到2倍,为了偷懒,数组只增不减。 最后就是处理min的问题,原来想着提供一个min变量,每次插入的时 ...
分类:
其他好文 时间:
2018-08-10 23:07:02
阅读次数:
146
这个最小栈和普通栈操作差不多,只是多了个getMin()函数用来获取栈内最小值。 为了完成获取最小值的函数,需要借助一个辅助栈来存放当前栈内最小值。 ...
分类:
其他好文 时间:
2018-05-21 14:29:56
阅读次数:
166
题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素x推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 解题思路: 使用两个栈,一个栈保存所有的操 ...
分类:
编程语言 时间:
2018-05-06 22:53:16
阅读次数:
197
设计一个支持 push,pop,top 操作,并能在常量时间内检索最小元素的栈。 push(x) -- 将元素x推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinS ...
分类:
其他好文 时间:
2018-04-06 18:33:15
阅读次数:
180
这是毕业校招二面时遇到的手写编程题,当时刚刚开始学习python,整个栈写下来也是费了不少时间。毕竟语言只是工具,只要想清楚实现,使用任何语言都能快速的写出来。 何为最小栈?栈最基础的操作是压栈(push)和退栈(pop),现在需要增加一个返回栈内最小值的函数(get_min),要求get_min函 ...
分类:
编程语言 时间:
2018-02-11 23:34:45
阅读次数:
326
翻译 设计支持push、pop、top和在常量时间内检索最小元素的栈。 push(x) —— 推送元素X进栈 pop() —— 移除栈顶元素 top() —— 得到栈顶元素 getMin() —— 检索栈的最小元素 原文 Design a stack that supports push, pop, ...
分类:
其他好文 时间:
2017-08-05 11:02:07
阅读次数:
139
实现一个栈,带有出栈(pop)、入栈(push)、取最小元素(getMin)三个方法,且时间复杂度均为O(1)。 初始想法: 这种方式进栈没有问题,而出栈时,若当前最小元素在栈顶并出栈了,用剩下哪个元素的下标顶替当前 min 就不得而知了。所以一旦最小元素的下标出栈,需要次小元素的下标作为备胎顶替, ...
分类:
编程语言 时间:
2017-07-06 00:28:26
阅读次数:
264
Implement a stack with min() function, which will return the smallest number in the stack. It should support push, pop and min operation all in O(1) c ...
分类:
其他好文 时间:
2016-11-14 07:50:37
阅读次数:
280
思想分析: 实现方案: class MinStack { public: MinStack() {} void push(int x) { if (StackNum.empty()) { StackNum.push(x); StackMin.push(x); } else { if (x <= St ...
分类:
其他好文 时间:
2016-07-12 23:25:28
阅读次数:
276