zoukankan      html  css  js  c++  java
  • 剑指offer---20---包含min函数的栈

     
    题意
    定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
     
    分析
    ---首先,自定义一个栈,栈内部使用ListNode链表来实现,同时维护一个length长度。
    ---其次,在栈中为了实现min,需要定义两个栈,其中一个栈专门用来保存最小的值。
     
    代码
    import java.util.Stack;
    public class Solution {
        private MyStack<Integer> minStack = new MyStack<Integer>();
        private MyStack<Integer> dataStack = new MyStack<Integer>();
        
        public void push(int node) {
            dataStack.push(node);
            if(minStack.length==0)minStack.push(node);
            else{
                if(minStack.head.data<node)minStack.push(minStack.head.data);
                else minStack.push(node);
            }
        }
        
        public void pop() {
            ListNode<Integer> temp = dataStack.head;
            dataStack.head = dataStack.head.nextNode;
            ListNode<Integer> min = minStack.head;
            minStack.head = minStack.head.nextNode;
        }
        
        public int top() {
            return dataStack.head.data;
        }
        
        public int min() {
            return minStack.head.data;
        }
    }
     
    //使用泛型去定义节点和栈,内部使用链表和头结点。
    class ListNode<K>{
        K data;
        ListNode<K> nextNode;
    }
    class MyStack<K>{
        public ListNode<K> head;
        public int length;
        public void push(K data){
            ListNode<K> node = new ListNode<K>();
            node.data = data;
            node.nextNode = head;
            head = node;
            length++;
        }
        public K pop(){
            if(head==null)return null;
            ListNode<K> temp = head;
            head = head.nextNode;
            length--;
            return temp.data;
        }
    }
     
  • 相关阅读:
    1053: 正弦函数
    1052: 数列求和4
    1051: 平方根的和
    1050: 阶乘的累加和
    POJ 1321 棋盘问题(搜索的方式)
    HDU 1176 免费馅饼
    BZOJ 2423 (求LCS的长度和种类数)
    HDU 2612 (2次BFS,有点小细节)
    POJ 1088 滑雪(模板题 DFS+记忆化)
    HRBUST 1186 青蛙过河 (思路错了)
  • 原文地址:https://www.cnblogs.com/buptyuhanwen/p/9377158.html
Copyright © 2011-2022 走看看