This pretty standard interview question. You should keep track of the current minimum when you do a push:
push 1:
[(v=1,m=1)]
push -1:
[(v=1, m=1), (v=-1, m=-1)]
push 3:
[(v=1, m=1), (v=-1, m=-1), (v=3, m=-1)]
get_min:
[(v=1, m=1), (v=-1, m=-1), (v=3, m=-1)]
returns m=-1
pop:
[(v=1, m=1), (v=-1, m=-1)]
returns v=3
get_min:
returns -1
masterof0|4 years ago
d--b|4 years ago
d--b|4 years ago
ahmedtd|4 years ago