File tree 2 files changed +60
-0
lines changed
2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < stack>
3
+ #include < vector>
4
+ using namespace std ;
5
+
6
+ class MinStack
7
+ {
8
+ public:
9
+ stack<pair<int , int >> s; // val , minVal
10
+
11
+ MinStack ()
12
+ {
13
+ }
14
+
15
+ void push (int val)
16
+ {
17
+ if (s.empty ())
18
+ {
19
+ s.push ({val, val});
20
+ }
21
+ else
22
+ {
23
+ int minVal = min (val, s.top ().second );
24
+ s.push ({val, minVal});
25
+ }
26
+ }
27
+
28
+ void pop ()
29
+ {
30
+ s.pop ();
31
+ }
32
+
33
+ int top ()
34
+ {
35
+ return s.top ().first ; // val
36
+ }
37
+
38
+ int getMin ()
39
+ {
40
+ return s.top ().second ; // minVal
41
+ }
42
+ };
43
+
44
+ int main ()
45
+ {
46
+ MinStack ms;
47
+
48
+ ms.push (-2 );
49
+ ms.push (0 );
50
+ ms.push (-3 );
51
+
52
+ cout << " Minimum value : " << ms.getMin () << endl;
53
+
54
+ ms.pop ();
55
+
56
+ cout << " Top value : " << ms.top () << endl;
57
+ cout << " Minimum value : " << ms.getMin () << endl;
58
+
59
+ return 0 ;
60
+ }
You can’t perform that action at this time.
0 commit comments