首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

微软口试100题

2012-08-30 
微软面试100题2.设计包含min函数的栈(栈)定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要

微软面试100题

2.设计包含min函数的栈(栈)

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。

要求函数min、push以及pop的时间复杂度都是O(1)。package cn.emma.interview_2;

public class Stack {public final static int MAX = 100;private static int top;private static int[] S = new int[MAX];static int min;private static Stack minStack = new Stack();public boolean emptyStack(){if(top == 0){return true;}return false;}public static void push(int x){if(top == 0){min =x;}else{min = (S[min] > x) ? ++top:min;}minStack.push(min);S[top] = x;}public static int pop(){minStack.pop();return S[--top];}public static int minElement(){return minStack.S[minStack.top];}public static int getMin(){return min;}public static void main(String[] args) {push(0);push(-1);push(2);push(-9);push(10);System.out.println(pop() + "\t" + pop() + "\t" + pop());System.out.println(minElement());}}
?

热点排行