package jianzhiOffer;import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得 * 到栈最小元素的min函数。 * @author user * 思路:创建两个栈,一个用于存储数据,一个用于 * 存储最小数据,还要注意两个栈应该保持同步的入栈 * 和出栈,以保证minStack顶部始终是最小的数据 */public class ch20 { Stack<Integer> stack = new Stack<>(); Stack<Integer> minStack = new Stack<>(); Integer tmp = null; public void push(int node) { stack.push(node); //判断如果为空则直接压入 if(minStack.isEmpty()) { minStack.push(node); } else { //否则,进行比较 tmp = stack.peek(); if(tmp <= minStack.peek()) { minStack.push(tmp); } else { //当发现当前压入数据不是最小的时候,minStack还应继续压入以前的最小数 //以此保证minStack顶部始终是最小的数据 minStack.push(minStack.peek()); } } } public void pop() { stack.pop(); minStack.pop(); } public int top() { return stack.peek(); } public int min() { return minStack.peek(); }}
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦