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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LeetCode - Easy - 155. Min Stack

發(fā)布時間:2023/12/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode - Easy - 155. Min Stack 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Topic

  • Stack
  • Design

Description

https://leetcode.com/problems/min-stack/

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

  • push(x) – Push element x onto stack.
  • pop() – Removes the element on top of the stack.
  • top() – Get the top element.
  • getMin() – Retrieve the minimum element in the stack.

Example 1:

Input ["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]]Output [null,null,null,null,-3,null,0,-2]Explanation MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); // return -3 minStack.pop(); minStack.top(); // return 0 minStack.getMin(); // return -2

Constraints:

  • Methods pop, top and getMin operations will always be called on non-empty stacks.

Analysis

底層用單鏈表實現(xiàn)

Submission

public class MinStack {/** initialize your data structure here. */private ListNode headNode;private ListNode minNode;public MinStack() {}public void push(int x) {headNode = new ListNode(x, headNode);minNode = minNode == null ? new ListNode(x) //: new ListNode(x < minNode.val ? x : minNode.val, minNode);}public void pop() {if (headNode == null) {return;} else {ListNode p = headNode;headNode = p.next;p.next = null;p = minNode;minNode = p.next;p.next = null;}}public int top() {if (headNode == null)throw new NullPointerException("Stack is Empty.");return headNode.val;}public int getMin() {if (minNode == null)throw new NullPointerException("Stack is Empty.");return minNode.val;}private class ListNode {public int val;public ListNode next;public ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}} }

Test

import static org.junit.Assert.*;import org.junit.Test;public class MinStackTest {@Testpublic void test() {MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);assertEquals(-3, minStack.getMin());minStack.pop();assertEquals(0, minStack.top());assertEquals(-2, minStack.getMin());} }

總結(jié)

以上是生活随笔為你收集整理的LeetCode - Easy - 155. Min Stack的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。