From 185ef9fcb0e59f13e9ee0ccb261693cdaddebab0 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 23 Feb 2021 21:07:19 +0800 Subject: import(solutions): Move leetcode solutions to subdir. --- works/solutions/leetcode/cpp/155-2.cpp | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 works/solutions/leetcode/cpp/155-2.cpp (limited to 'works/solutions/leetcode/cpp/155-2.cpp') diff --git a/works/solutions/leetcode/cpp/155-2.cpp b/works/solutions/leetcode/cpp/155-2.cpp new file mode 100644 index 0000000..aa07eee --- /dev/null +++ b/works/solutions/leetcode/cpp/155-2.cpp @@ -0,0 +1,48 @@ +#include +#include + +class MinStack +{ +public: + /** initialize your data structure here. */ + MinStack() + { + // Although I really think this is just a trick for this problem. + // Leetcode does not give the input size. So I just make a reasonable assumption. + data_.reserve(10000); + min_stack_.reserve(10000); + } + + void push(int x) + { + data_.push_back(x); + if (min_stack_.empty()) + { + min_stack_.push_back(x); + } + else + { + min_stack_.push_back(std::min(min_stack_.back(), x)); + } + } + + void pop() + { + data_.pop_back(); + min_stack_.pop_back(); + } + + int top() + { + return data_.back(); + } + + int getMin() + { + return min_stack_.back(); + } + +private: + std::vector data_; + std::vector min_stack_; +}; -- cgit v1.2.3