日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode 155. 最小栈(常数时间获取最小值,需要维护两个栈)

發布時間:2024/2/28 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 155. 最小栈(常数时间获取最小值,需要维护两个栈) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

思路

左神講過的經典算法,維護兩個棧:

  • stack,用來存儲數據
  • minStack,用來存儲每個位置情況下的最小值,類似于動態規劃。

每次入棧2個元素,一個是入棧的元素本身,一個是當前棧元素的最小值。
直接上例子,一看就明白了。

輸入:

["MinStack","push","push","push","push","getMin","pop","getMin","pop","getMin","pop","getMin"] [[],[2],[0],[3],[0],[],[],[],[],[],[],[]]

預期結果:

[null,null,null,null,null,0,null,0,null,0,null,2]

過程詳解:

push/pop 第 0 個元素之后: stack: 2 minStack: 2 push/pop 第 1 個元素之后: stack: 2 0 minStack: 2 0 push/pop 第 2 個元素之后: stack: 2 0 3 minStack: 2 0 0 push/pop 第 3 個元素之后: stack: 2 0 3 0 minStack: 2 0 0 0 push/pop 第 2 個元素之后: stack: 2 0 3 minStack: 2 0 0 push/pop 第 1 個元素之后: stack: 2 0 minStack: 2 0 push/pop 第 0 個元素之后: stack: 2 minStack: 2

題解

class MinStack {int pos;int[] stack; // 普通棧int[] minStack; // 最小棧,存放當前位置最小值/*** initialize your data structure here.*/public MinStack() {stack = new int[10000];minStack = new int[10000];pos = -1;}public void push(int x) {pos++;stack[pos] = x;if (pos == 0)minStack[pos] = x;elseminStack[pos] = minStack[pos - 1] < x ? minStack[pos - 1] : x;print();}public void pop() {pos--;print();}public int top() {return stack[pos];}public int getMin() {return minStack[pos];}public void print() {System.out.println("\npush/pop 第 " + pos + " 個元素之后:");System.out.print("stack:\t\t");for (int i = 0; i <= pos; i++) {System.out.print(stack[i] + " ");}System.out.println();System.out.print("minStack:\t");for (int i = 0; i <= pos; i++) {System.out.print(minStack[i] + " ");}} }/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(x);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/

總結

以上是生活随笔為你收集整理的leetcode 155. 最小栈(常数时间获取最小值,需要维护两个栈)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。