diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-22 15:41:10 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-22 15:41:10 -0600 |
| commit | 0dd668fede0ab95f225b3e8ee068f6f908748fd2 (patch) | |
| tree | f81caceb5d8e95e25a5d3a0cb06470103fafbd86 /2020 | |
| parent | 8b56ea944de3ae79dbf7c7badfda7434cdf3a5df (diff) | |
Keep track of each new max
Diffstat (limited to '2020')
| -rw-r--r-- | 2020/08/22/main.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/2020/08/22/main.rb b/2020/08/22/main.rb index 6042464..dc27bc7 100644 --- a/2020/08/22/main.rb +++ b/2020/08/22/main.rb @@ -5,18 +5,26 @@ end class MaxStack def initialize @items = [] + @maxes = [] end def push(value) + if @maxes.empty? || value > @maxes[-1] + @maxes.push(value) + end @items.push(value) end def pop - @items.pop + result = @items.pop + @maxes.pop if result == @maxes[-1] + result end + # time: O(1) + # space: O(1) def max - @items.max + @maxes[-1] end end |
