剑指offer之面试题21:包含min函数的栈-创新互联

题目:

在仪陇等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、做网站 网站设计制作定制网站制作,公司网站建设,企业网站建设,高端网站设计,成都营销网站建设,外贸网站建设,仪陇网站建设费用合理。

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

思路一:

通过每次在压入栈顶的元素与当前最小元素相比后,保存一遍最小元素,每次弹出,都弹出两个,这个就能得到栈当前最小元素了

代码:

class Solution {
public:
    void push(int value) {
        
        if(s1.size()==0)
        {
            s1.push(value);
            int min=value;
            s1.push(min);
        }
        else
        {
            int min=s1.top();
            if(value s1;
    
};

思路二:利用两个栈,一个栈用于压入数据,另一个栈用于压入数据时的最小元素。无论最小元素是不是压栈的元素,都保存到第二个栈中

代码:

class Solution {
public:
    void push(int value) 
    {
    	if(s1.size()==0)
        {
            s1.push(value);
            s2.push(value);
        }
        else
        {
            s1.push(value);
            int min=s2.top();
			if(min>value)
            {
                s2.push(value);
            }
            else
            {
                s2.push(min);
            }
        }
    }
    void pop() 
    {
    	if(!s1.empty())
        {
            s1.pop();
            s2.pop();
        }
    }
    int top() {
        return s1.top();
        
    }
    int min() {
        return s2.top();
        
    }
private:
    stack s1,s2;
};

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:剑指offer之面试题21:包含min函数的栈-创新互联
文章位置:http://scyanting.com/article/dhoeog.html