定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:用一个栈data保存数据,用另外一个栈min保存依次入栈最小的数
比如,data中依次入栈,
5
,
4
,
3
,
8
,
10
,
11
,
12
,
1
则min依次入栈,
5
,
4
,
3
,no,no, no, no,
1
no代表此次不如栈
每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则不如栈。
import
java.util.Stack;
public
class
Solution {
private
int
stack[]=
new
int
[
30
];
private
int
pos=-
1
;
public
void
push(
int
node) {
if
(pos>
30
){
return
;
}
pos++;
stack[pos]=node;
}
public
void
pop() {
if
(pos<=-
1
)
return
;
pos--;
}
public
int
top() {
return
stack[pos];
}
public
int
min() {
int
temp=top();
for
(
int
i=
0
;i<pos;i++){
if
(temp>stack[i])
temp=stack[i];
}
return
temp;
}
}