From b6359959ac97689c4c01827a695b959862bf2fc4 Mon Sep 17 00:00:00 2001 From: yuanguangxin <274841922@qq.com> Date: Thu, 26 Mar 2020 22:23:36 +0800 Subject: [PATCH] add q155 --- .idea/workspace.xml | 66 +++++++++++----------- README.md | 1 + src/栈相关/q155_最小栈/MinStack.java | 43 ++++++++++++++ 3 files changed, 77 insertions(+), 33 deletions(-) create mode 100644 src/栈相关/q155_最小栈/MinStack.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1720150..b71213d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,8 +1,8 @@ - - + + @@ -80,13 +80,13 @@ - - - @@ -662,7 +662,6 @@ - @@ -687,7 +686,8 @@ - @@ -702,35 +702,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -760,10 +760,10 @@ - + - + diff --git a/README.md b/README.md index 225f361..846f3a2 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ * [q20_有效的括号](/src/栈相关/q20_有效的括号) * [q32_最长有效括号](/src/栈相关/q32_最长有效括号) +* [q155_最小栈](/src/栈相关/q155_最小栈) * [q224_基本计算器](/src/栈相关/q224_基本计算器) * [q316_去除重复字母](/src/栈相关/q316_去除重复字母) diff --git a/src/栈相关/q155_最小栈/MinStack.java b/src/栈相关/q155_最小栈/MinStack.java new file mode 100644 index 0000000..a477396 --- /dev/null +++ b/src/栈相关/q155_最小栈/MinStack.java @@ -0,0 +1,43 @@ +package 栈相关.q155_最小栈; + +import java.util.Stack; + +/** + * 不使用辅助栈,每次push两个元素 + */ +public class MinStack { + + private Stack stack; + + public MinStack() { + stack = new Stack<>(); + } + + public void push(int x) { + if (stack.isEmpty()) { + stack.push(x); + stack.push(x); + } else { + int tmp = stack.peek(); + stack.push(x); + if (tmp < x) { + stack.push(tmp); + } else { + stack.push(x); + } + } + } + + public void pop() { + stack.pop(); + stack.pop(); + } + + public int top() { + return stack.get(stack.size() - 2); + } + + public int getMin() { + return stack.peek(); + } +}