-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution155.cs
49 lines (41 loc) · 1011 Bytes
/
Solution155.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
namespace LeetCode.Solutions;
public class Solution155
{
/// <summary>
/// 155. Min Stack - Medium
/// <a href="https://leetcode.com/problems/min-stack">See the problem</a>
/// </summary>
public class MinStack
{
private readonly Stack<int> _stack = new();
private readonly Stack<int> _minStack = new();
public void Push(int val)
{
_stack.Push(val);
if (_minStack.Count == 0 || val <= _minStack.Peek())
{
_minStack.Push(val);
}
}
public void Pop()
{
if (_stack.Count == 0)
{
return;
}
if (_stack.Peek() == _minStack.Peek())
{
_minStack.Pop();
}
_stack.Pop();
}
public int Top()
{
return _stack.Peek();
}
public int GetMin()
{
return _minStack.Peek();
}
}
}