//设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
//
//
// push(x) —— 将元素 x 推入栈中。
// pop() —— 删除栈顶的元素。
// top() —— 获取栈顶元素。
// getMin() —— 检索栈中的最小元素。
//
//
//
//
// 示例:
//
// 输入:
//["MinStack","push","push","push","getMin","pop","top","getMin"]
//[[],[-2],[0],[-3],[],[],[],[]]
//
//输出:
//[null,null,null,null,-3,null,0,-2]
//
//解释:
//MinStack minStack = new MinStack();
//minStack.push(-2);
//minStack.push(0);
//minStack.push(-3);
//minStack.getMin(); --> 返回 -3.
//minStack.pop();
//minStack.top(); --> 返回 0.
//minStack.getMin(); --> 返回 -2.
//
//
//
//
// 提示:
//
//
// pop、top 和 getMin 操作总是在 非空栈 上调用。
//
// Related Topics 栈 设计
难度系数:简单
使用PHP自带函数快速完成,不拖泥带水
<?php
//leetcode submit region begin(Prohibit modification and deletion)
class MinStack
{
private $stack = [];
private $top = -1;
/**
* initialize your data structure here.
*/
function __construct()
{
}
/**
* @param Integer $x
* @return NULL
*/
function push($x)
{
array_push($this->stack, $x);
++$this->top;
}
/**
* @return NULL
*/
function pop()
{
if (empty($this->stack)) {
return null;
}
array_pop($this->stack);
--$this->top;
}
/**
* @return Integer
*/
function top()
{
if (empty($this->stack)) return null;
return $this->stack[$this->top];
}
/**
* @return Integer
*/
function getMin()
{
if (empty($this->stack)) {
return null;
}
return min($this->stack);
}
}