Min Stack


Collapse Content

Create a Stack that contains the standard push and pop methods. It should also contain another method min that returns the minimum number in the Stack.

Extra Credit
All operations should take O(1) time.

Input / Output

You will be given multiple lists of input in the standard manner. If a number is -1, pop off the top number from your stack, and print nothing. Otherwise, push the given number onto your stack, and then print the minimum number currently in the Stack

Sample Input

1
10
3 5 -1 -1 7 2 11 -1 -1 9

Sample Output

3 3 7 2 2 7

Challenge

Create a Stack and print the minimum number every time a new number is added.

Please sign in or sign up to submit answers.

Alternatively, you can try out Learneroo before signing up.

Comments

  • my code

    I'm not sure how I'm supposed to restart the current min and set it to 7. Basically if i pop a bunch off and the new min is a bigger number it is still showing the current min i set from before. Any hints on what I'm doing wrong?

  • So, how do I know if all my operations are correctly running at O(1)? I mean, I can say it in theory but do the platform perform any basic check? Doesn't looks like because any code I wrote the test is passing.

  • @Paulo, currently you should analyze the running time on your own. The computer cannot check the running time, but in the future we may add larger tests cases that fail to complete in time for poor algorithms.

  • I still don't know exactly what I'm doing wrong...

  • would it be easier to use a queue here?

  • Hint: Constant running time, but not constant space complexity

  • Please a hint. i cant figure it out. I keep sitting with an empty stack and other problems. Help.

  • I have fount a way, but i think its not really the good way. can i see a featured awnseranywere?

  • Here's a possible solution.

  • Would have been nice if the system didn't think my solution was wrong just because I forgot to println() after each example. Otherwise, keep up the good work!

All Node Comments
Contact Us
Sign in or email us at [email protected]