定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:用一个栈data保存数据,用另外一个栈min保存依次入栈最小的数比如,data中依次入栈,5, 4,
3,8,
10,11,
12,1 则min依次入栈,5, 4,
3,no,no, no, no,1no代表此次不如栈每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则不如栈。
import
java.util.Stack;public
class Solution { privateint
stack[]=newint[30]; privateint
pos=-1; publicvoid
push(intnode) { if(pos>30){ return; } pos++; stack[pos]=node; } publicvoid
pop() { if(pos<=-1) return; pos--; } publicint
top() { returnstack[pos]; } publicint
min() { inttemp=top(); for(inti=0;i<pos;i++){ if(temp>stack[i]) temp=stack[i]; } returntemp; }}
本文介绍了一种特殊的栈数据结构实现,该栈能在常数时间内返回栈内的最小元素。通过使用两个栈,一个用于存储所有元素,另一个用于跟踪最小值历史记录,实现了高效的最小值查找。
310

被折叠的 条评论
为什么被折叠?



