@Dave agreed
@Sandeep it works, but it takes more memory

On Mon, Sep 5, 2011 at 9:15 PM, SANDEEP CHUGH <sandeep.aa...@gmail.com>wrote:

> @dave : ya ryt..
> @shravan ; my solution works for the case that dave has told.. so at every
> step we hav to push min..
>
>
> On Mon, Sep 5, 2011 at 9:11 PM, Dave <dave_and_da...@juno.com> wrote:
>
>> @Shravan: You at least have to push equal mins on the min stack.
>> Otherwise, with the sequence 2, 1, 1, if you push only 2 and 1 onto
>> the min stack, then when you pop the first 1 from the data stack and
>> pop the 1 from the min stack, the top of the min stack is 2, but the
>> minimum in the data stack is 1. So you push 2, 1, 1 onto the min
>> stack. When you pop the first 1 from the data stack, you pop the first
>> 1 from the min stack, and still show the min = 1.
>>
>> Don's solution for data sequence 2, 3, 1, 1 would push (2,2) (3,2),
>> (1,1), (1,1) onto one stack, whereas you should push 2, 3, 1, 1 onto
>> the data stack and 2, 1, 1 onto the min stack, for a saving of one
>> stack item. For the sequence 1, 1, 1, 1, 1, 1, 1, you both would have
>> the same number of items stacked.
>>
>> Dave
>>
>> On Sep 5, 10:09 am, Shravan Kumar <shrava...@gmail.com> wrote:
>> > @sandeep
>> >
>> > You don't need to store duplicate elements in stack2. When you want min
>> > return top element. When an element is popped from stack1, pop stack2
>> only
>> > if it is equal to popped stack1 element.
>> >
>> > On Mon, Sep 5, 2011 at 8:21 PM, SANDEEP CHUGH <sandeep.aa...@gmail.com
>> >wrote:
>> >
>> >
>> >
>> > > In my earlier approach , if the element that is stored in "min" got
>> popped
>> > > out  then we have to search entire stack for min.. so i think my
>> earlier
>> > > approach will not work.. tell me about that??
>> >
>> > > and i hav another approach..  also tell me about that  also?
>> >
>> > > consider we have to push  the elemnts  12 , 3, 15 ,8 ,2, 9
>> >
>> > >   stack 1         stack 2
>> >
>> > > 12
>> >
>> > > 12
>> >
>> > >      first 12 came , push in both
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > >     next 3 came ,  push 3 in first stack ,   and
>> >
>> > >    push   minumum ( stack1 top elem , stack2 top elem )  into
>>  stack2
>> > > ..   i.e 3 pushed to 2nd stack
>> >
>> > > 15
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > >                          now for all the numbers that are coming ,
>> push
>> > > them into first stack and push min of both stacks top elements into
>> 2nd
>> > > stack      min (15 , 3)  --> 3 pushed to stack2
>> >
>> > >   8
>> >
>> > > 15
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > >        min (8,3)  --->   3 pushed to stack2
>> >
>> > > 2
>> >
>> > > 8
>> >
>> > > 15
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > > 2
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > >        min(2,3)  -->  2 pushed to stack2
>> >
>> > > 9
>> >
>> > > 2
>> >
>> > > 8
>> >
>> > > 15
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > > 2
>> >
>> > > 2
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 3
>> >
>> > > 12
>> >
>> > >                      min(9,2) -- > 2 pushed to stack2
>> >
>> > > so if at any time we want to  print the minimum element , print the
>> stack2
>> > > top element ,
>> >
>> > > and if pop() is performed on stack1 , then perform pop() operation on
>> > > stack2 also .
>> >
>> > > after pop () on stack2 , stack2  top still contains the minimum
>> element for
>> > > the rest of elements ..
>> >
>> > > On Mon, Sep 5, 2011 at 5:15 PM, kARTHIK R <k4rth...@gmail.com> wrote:
>> >
>> > >> +1 Don. Good Solution. We can't save space and time at the same time.
>> > >> Either use extra space and do operations fast, or use O(1) for min,
>> and if
>> > >> min is popped, spend O(n) to spot the next min. Depends on the use
>> case.
>> >
>> > >> Karthik R,
>> > >> R&D Engineer,
>> > >> Tejas Networks.
>> >
>> > >> On Mon, Sep 5, 2011 at 5:10 PM, bharatkumar bagana <
>> > >> bagana.bharatku...@gmail.com> wrote:
>> >
>> > >>> +1 sandeep
>> > >>> @don: u'r sol is correct , but if the number of elements are very
>> huge
>> > >>> and the updated min is long numbers , then we are storing the min in
>> each
>> > >>> element ... its waste of memory ...
>> > >>> if the # elements are less, then this is good sol..
>> >
>> > >>> On Mon, Sep 5, 2011 at 1:02 AM, Nitin Garg <
>> nitin.garg.i...@gmail.com>wrote:
>> >
>> > >>>> Don's solution is correct.
>> > >>>> At each push() operation, you update the value of min element upto
>> that
>> > >>>> depth in stack.
>> > >>>> Can be illustrated with the following example -
>> >
>> > >>>> stack = {}
>> > >>>> push(2) stack = {(2,2)}
>> > >>>> push(3) stack = {(3,2),(2,2)}
>> > >>>> push(1) stack = {(1,1),(3,2),(2,2)}
>> >
>> > >>>> where b in tuple (a,b) represents the min value upto current depth
>> in
>> > >>>> stack.
>> > >>>> pop() and min() are straight forward.
>> >
>> > >>>> On Mon, Sep 5, 2011 at 12:48 AM, Don <dondod...@gmail.com> wrote:
>> >
>> > >>>>> Each element in the stack will contain not only its own value, but
>> the
>> > >>>>> min value at that depth of the stack:
>> >
>> > >>>>> struct stackItemStruct
>> > >>>>> {
>> > >>>>>  int value;
>> > >>>>>  int min;
>> > >>>>>  struct stackItemStruct *next;
>> > >>>>> };
>> >
>> > >>>>> typedef struct stackItemStruct stackItem;
>> >
>> > >>>>> class stack
>> > >>>>> {
>> > >>>>> public:
>> > >>>>>  stack();
>> > >>>>>  void push(int v);
>> > >>>>>  int pop();
>> > >>>>>  int min();
>> > >>>>> private:
>> > >>>>>  stackItem *_stack;
>> > >>>>> };
>> >
>> > >>>>> stack::stack()
>> > >>>>> {
>> > >>>>>  _stack = 0;
>> > >>>>> }
>> >
>> > >>>>> void stack::push(int v)
>> > >>>>> {
>> > >>>>>  stackItem newItem = new stackItem;
>> > >>>>>  newItem->value = newItem->min = v;
>> > >>>>>  if (_stack &&  (_stack->min < v) )
>> > >>>>>      newItem->min = _stack->min;
>> > >>>>>  newItem->next = _stack;
>> > >>>>>  _stack = newItem;
>> > >>>>> }
>> >
>> > >>>>> int stack::pop()
>> > >>>>> {
>> > >>>>>  int result = 0;
>> > >>>>>  if (_stack)
>> > >>>>>  {
>> > >>>>>    result = _stack->val;
>> > >>>>>    stackItem *tmp = _stack;
>> > >>>>>    _stack = tmp->next;
>> > >>>>>    delete tmp;
>> > >>>>>  }
>> > >>>>>  return result;
>> > >>>>> }
>> >
>> > >>>>> int stack::min()
>> > >>>>> {
>> > >>>>>  return _stack ? _stack->min : 0;
>> > >>>>> }
>> >
>> > >>>>> On Sep 4, 12:08 pm, Sangeeta <sangeeta15...@gmail.com> wrote:
>> > >>>>> > How would you design a stack which,in addition to push and
>> pop,also
>> > >>>>> > has a function min which returns the minimum element?push,pop
>> and min
>> > >>>>> > should all operate in O(1) time
>> >
>> > >>>>> --
>> > >>>>> You received this message because you are subscribed to the Google
>> > >>>>> Groups "Algorithm Geeks" group.
>> > >>>>> To post to this group, send email to algogeeks@googlegroups.com.
>> > >>>>> To unsubscribe from this group, send email to
>> > >>>>> algogeeks+unsubscr...@googlegroups.com.
>> > >>>>> For more options, visit this group at
>> > >>>>>http://groups.google.com/group/algogeeks?hl=en.
>> >
>> > >>>> --
>> > >>>> Nitin Garg
>> >
>> > >>>> "Personality can open doors... but only Character can keep them
>> open"
>> >
>> > >>>> --
>> > >>>> You received this message because you are subscribed to the Google
>> > >>>> Groups "Algorithm Geeks" group.
>> > >>>> To post to this group, send email to algogeeks@googlegroups.com.
>> > >>>> To unsubscribe from this group, send email to
>> > >>>> algogeeks+unsubscr...@googlegroups.com.
>> > >>>> For more options, visit this group at
>> > >>>>http://groups.google.com/group/algogeeks?hl=en.
>> >
>> > >>> --
>> >
>> > >>> **Please do not print this e-mail until urgent requirement. Go
>> Green!!
>> > >>> Save Papers <=> Save Trees
>> > >>> *BharatKumar Bagana*
>> > >>> **http://www.google.com/profiles/bagana.bharatkumar<
>> http://www.google.com/profiles/bagana.bharatkumar>
>> > >>> *
>> > >>> Mobile +91 8056127652*
>> > >>> <bagana.bharatku...@gmail.com>
>> >
>> > >>>  --
>> > >>> You received this message because you are subscribed to the Google
>> Groups
>> > >>> "Algorithm Geeks" group.
>> > >>> To post to this group, send email to algogeeks@googlegroups.com.
>> > >>> To unsubscribe from this group, send email to
>> > >>> algogeeks+unsubscr...@googlegroups.com.
>> > >>> For more options, visit this group at
>> > >>>http://groups.google.com/group/algogeeks?hl=en.
>> >
>> > >>  --
>> > >> You received this message because you are subscribed to the Google
>> Groups
>> > >> "Algorithm Geeks" group.
>> > >> To post to this group, send email to algogeeks@googlegroups.com.
>> > >> To unsubscribe from this group, send email to
>> > >> algogeeks+unsubscr...@googlegroups.com.
>> > >> For more options, visit this group at
>> > >>http://groups.google.com/group/algogeeks?hl=en.
>> >
>> > >  --
>> > > You received this message because you are subscribed to the Google
>> Groups
>> > > "Algorithm Geeks" group.
>> > > To post to this group, send email to algogeeks@googlegroups.com.
>> > > To unsubscribe from this group, send email to
>> > > algogeeks+unsubscr...@googlegroups.com.
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
>> >
>> > - Show quoted text -
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to algogeeks@googlegroups.com.
>> To unsubscribe from this group, send email to
>> algogeeks+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to