本文主要是介绍栈中最小元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天做了100题的第二题。
题目:设计包含min函数的栈。
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
之前看了答案,只给了提示,需要一个辅助栈,因为如果最小元被pop出去,那么栈的最小元素也要改变,所以最小元其实也是一个栈结构。以下是拿C++的实现(在网上搜到了不用辅助栈的结构,需要不断存放push进的元素和最小元的差值,pop的时候再用最小元和差值做一个处理):
#include <iostream>
#include <stack>using namespace std;
这篇关于栈中最小元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!