【面試題】實現一個棧,要求Push(入棧),Pop(出棧),Min(返回最小值的操作)的時間複雜度爲O(1)

問題描述:實現一個棧,要求Push(入棧),Pop(出棧),Min(返回最小值的操作)的時間複雜度爲O(1)  分析問題:要記錄從當前棧頂到棧底元素的最小值,很容易想到用一個變量,每push一個元素更新一次變量的值。那麼問題來了,當執行pop操作時,上一次的最小值就找不到了。  解決問題:這裏有兩種方法解決這個問題  方法一  使用一個棧。元素x入棧時,執行一次push(x),再push(min)
相關文章
相關標籤/搜索