剑指offer-定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
来源:互联网 发布:列举常用的查找算法 编辑:程序博客网 时间:2024/06/05 08:43
包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:
借助一个辅助栈minStack,与原始栈的大小一样。
初始时为原始栈的第一个元素,然后依次比较,如果原始栈中有比minStack栈顶元素小的元素就直接入栈,如果没有则把minStack栈顶元素重新入栈
public class StackMinElementSolution { private Stack<Integer> originalStack=new Stack<Integer>(); private Stack<Integer> minStack=new Stack<Integer>(); //进栈 public void push(int node) { //如果最小栈为空,直接进栈 //如果最小栈的栈顶元素大于等于当前元素,直接进栈 if(minStack.isEmpty() || minStack.peek()>=node) { minStack.push(node); }else { //如果最小栈的栈顶元素小于当前元素,则把最小栈的栈顶元素再次进栈 minStack.push(minStack.peek()); } originalStack.push(node); } //出栈 public void pop() { if(originalStack.isEmpty() || minStack.isEmpty()) { return; } originalStack.pop(); minStack.pop(); } //弹出栈顶元素 public int top() { if(!originalStack.isEmpty()) { return originalStack.peek(); } return 0; } public int min() { if(!minStack.isEmpty()) { return minStack.peek(); } return 0; }}
其他方法
不借助辅助栈,push(),pop(),top()使用stack的方法
对于min(),借助一个变量,顺次比较栈中的元素
public int min() { int min = stack.peek(); int tmp = 0; Iterator<Integer> iterator = stack.iterator(); while (iterator.hasNext()){ tmp = iterator.next(); if (min>tmp){ min = tmp; } } return min; }
阅读全文
0 0
- 剑指offer——定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 剑指offer-定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- java 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 17.定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- java实现定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。时间复杂度都是O(1)
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素
- 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素
- 请设计包含min函数的栈,定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素
- Nginx之负载均衡(upstream)-yellowcong
- Environment
- 组件化app第1课
- OpenSSL中的SSL_connect函数究竟做了哪些事?
- 链表基础1
- 剑指offer-定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 索引
- 多态和多态模型
- 使用VS调试Dump文件
- Paint调用setAlpha值没有看到透明效果
- 【面向JS--DOM 递归API】
- hdu1162 Eddy's picture(Prim算法模板)
- idea使用笔记
- 数据清洗