In this post, we are going to go over my notes while solving a coding question
Today I am sharing my thoughts on the Cracking the coding interview question for chapter 3 Stacks and Queues, Q3.2
Below are my personal notes and working while solving the problem.
I might be correct, wrong, or totally wrong, but I wanted to have a working copy of my train of thoughts while solving the problem.
Notes section
**************************************
what operations will the stack have?
push,pop,getTop and isEmpty. Here all the operations will have a time complexity of O(1).
while performing push operation we can maintain the min value. While performing the pop operation, how do we find the next min value? - When we are pushing the element, we can push the item and the min value, up to that item in the stack.
In that way, we will have a track of min value up to a particular item when we start popping.
For the pop operation, we can also have the min function work in O(1).
push
===
1. check if the min var has a bigger or smaller value. If small take the var else update the var
pop
===
1. get the top element after pop, and update the min var
This problem can also be asked to keep a track of max, running average, a value with certain characteristics
7 steps for coding interview
===
1. clarifying the question - we need to add an additional function to keep track of min value
2. confirming the inputs - the inputs will only be a valid integer number. Even if the number is a floating-point, the solution will work. This methodology would work for binary and hexadecimal numbers too but we would have to convert the hex numbers into strings.
3. test cases - 1,2,-5,0,infinity, -infinity
4. brainstorming - like the top pointer, we will also have a min pointer. The values pushed to the stack will be a list and it can be manipulated.
The min value will be updated for both the push and pop operation.
O(1) means that the operation will take a constant amount of time or fixed time and not a single step.
5. runtime analysis - O(1) for all the operations.
6. coding
7. debugging
Thank you!!
Comments
Post a Comment