| class MaxStack | |
| attr_reader :stack, :largests_stack # for debugging | |
| def initialize | |
| @stack = [] | |
| @largests_stack = [] | |
| end | |
| def push(item) | |
| @stack.push(item) | |
| if @largests_stack.empty? || item >= @largests_stack.last | |
| @largests_stack.push(item) | |
| end | |
| item | |
| #@largest = [@largest, item].max | |
| end | |
| def pop() | |
| item = @stack.pop | |
| if item == @largests_stack.last | |
| @largests_stack.pop | |
| end | |
| item | |
| end | |
| def get_largest | |
| @largests_stack.last | |
| #if @stack.empty? throw "no values" | |
| #@stack.max | |
| end | |
| end |
| class MaxStack | |
| attr_reader :stack, :largests_stack # for debugging | |
| def initialize | |
| @stack = [] | |
| @largests_stack = [] | |
| end | |
| def push(item) | |
| @stack.push(item) | |
| if item >= @largests_stack.last | |
| @largests_stack.push(item) | |
| end | |
| item | |
| #@largest = [@largest, item].max | |
| end | |
| def pop() | |
| item = @stack.pop | |
| if item == @largests_stack.last | |
| @largests_stack.pop | |
| end | |
| item | |
| end | |
| def get_largest | |
| @largests_stack.last | |
| #if @stack.empty? throw "no values" | |
| #@stack.max | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment