155.Min Stack 设计一个栈

  • java
    可以用数组和ArrayList两种实现
    我们选择了较为简单的ArrayList来实现
class MinStack {

    /** initialize your data structure here. */
    List<Integer> list=new ArrayList<>();  
    
    public MinStack() {
       
    }
    
    public void push(int x) {
        list.add(x);
        
    }
    
    public void pop() {
        list.remove(list.size()-1);
    }
    
    public int top() {
        return list.get(list.size()-1);
    }
    
    public int getMin() {
        int min=list.get(0);
        for(int num:list){
            if(num<min)
                min=num;
        }
        return min;
    }
}

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack obj = new MinStack();
 * obj.push(x);
 * obj.pop();
 * int param_3 = obj.top();
 * int param_4 = obj.getMin();
 */
  • javascript
    javascript中使用引用类型Array实现
/**
 * initialize your data structure here.
 */

var MinStack = function() {
    //对于原型模式而言,引用类型的属性会被所有实例共享,因此使用构造函数模式来定义list。
    
  this.list=new Array();
};




/** 
 * @param {number} x
 * @return {void}
 */
MinStack.prototype.push = function(x) {
    this.list.push(x);
};

/**
 * @return {void}
 */
MinStack.prototype.pop = function() {
    this.list.pop();
};

/**
 * @return {number}
 */
MinStack.prototype.top = function() {
    return this.list[this.list.length-1];
};

/**
 * @return {number}
 */
MinStack.prototype.getMin = function() {
    let min=this.list[0];
    for(let i=1;i<this.list.length;i++){
        if(this.list[i]<min)
            min=this.list[i];
    }
    return min;
    
};

/** 
 * Your MinStack object will be instantiated and called as such:
 * var obj = Object.create(MinStack).createNew()
 * obj.push(x)
 * obj.pop()
 * var param_3 = obj.top()
 * var param_4 = obj.getMin()
 */
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,595评论 25 709
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,396评论 9 118
  • 四目相对, 你眼中的欲望刺破我的皮肤, 我想你是爱我的。 每一个结合处相互颤抖, 等每一个旋律达到顶峰, 我们依偎...
    多斤没钱男阅读 1,033评论 1 0
  • 基本概念: 1、图像增强: a.空间域增强:对图像的像素直接处理b.频域增强:修改图像的傅里叶变换 1.1空间域增...
    冻冻妖阅读 8,170评论 0 1
  • 我有一个这样的爸爸,他或许不是一个很优秀的一人,他或许长得没那么高,没那么帅,他或许没有那么有钱,但是他却是这个世...
    蓝莓姑娘阅读 3,980评论 0 0