实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值)的时间
复杂度为O(1)
其实找到这个栈的最小值并不难,难的是让返回最小值的复杂度为0(1)也就是说我什么时候想要这个栈中的最小数的你不需要遍历栈直接就可以返回给我。
其实这种题有两种思路,第一种是创建两个栈,用两个栈来实现,其中一个栈就是正常存放你的数据,另一个栈就是用来存放你的栈中所有元素的最小值。
正常栈入的第一个元素为5,这时候整个栈最小的数就是5,所以将5存入了MIN栈中,之后8进入正常栈,8大于5所以最小栈的数不变,9,7