Commit 0dd668f

mo khan <mo.khan@gmail.com>
2020-08-22 21:41:10
Keep track of each new max
1 parent 8b56ea9
Changed files (1)
2020
08
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