• 剑指offer19-包含min函数的栈


    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

    注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。

    思路:两个栈,一个栈保存所有元素,一个栈保存在添加元素过程中遇到的最小元素;

    class Solution {
    public:
        
        void push(int value) {
            if(s.empty())
            {
                s.push(value);
                min_s.push(value);
            }else{
                if(value<min_s.top())
                {
                    s.push(value);
                    min_s.push(value);
                }else{
                    s.push(value);
                }
            }
            
        }
        void pop() {
            if(!s.empty())
            {
                if(s.top()==min_s.top())
                {
                    s.pop();
                    min_s.pop();
                }
                else{
                    s.pop();
                }
            }
        }
        int top() {
            return s.top();
        }
        int min() {
            return min_s.top();
        }
        private:
        stack<int>s;
        stack<int>min_s;
    };

  • 相关阅读:
    ASP.NET 实现验证码以及刷新验证码
    使用纯生js操作cookie
    TesseractOCR Tutorials
    c# 解析JSON的几种办法
    ElasticSearch常用查询命令-kibana中使用
    ElasticSearch集成IK分词器
    Typora使用教程 之 PicGo集成做图床
    Kibana-CentOS7单机安装测试
    Elasticsearch-CentOS7单机安装测试
    CentOS7安装JDK8
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12965736.html
Copyright © 2020-2023  润新知