编程语言
首页 > 编程语言> > 剑指 Offer 30. 包含 min 函数的栈 C++ 时间91%

剑指 Offer 30. 包含 min 函数的栈 C++ 时间91%

作者:互联网

用一个记录当前最小值的栈mins作为辅助,如果新入栈的数小于等于(因为可能有重复数值,所以取等号)mins.top或者mins是空的,则两个栈一起入栈。
随后出栈时如果出的是当前最小值,则两个栈一起出栈。

class MinStack {
public:
    stack<int> s, mins;
public:
	/** initialize your data structure here. */
	MinStack() {

	}

	void push(int x) {
		s.push(x);
		if (mins.empty() || mins.top()>=x)
			mins.push(x);
	}

	void pop() {
		if (mins.top() == s.top())
			mins.pop();
		s.pop();
	}

	int top() {
		return s.top();
	}

	int min() {
		return mins.top();
	}
};

image.png
image.png
image.png

标签:return,Offer,91%,top,min,pop,int,push,mins
来源: https://blog.csdn.net/qq_45735810/article/details/122152337