Then the case....

    1  1  1
    1  1  1
    0  1  1
Scan I
    1  1  1
    1  1  1
    0  1  0
Scan II
    0  1  1
    0  1  1
    0  1  0

Scan III
    0  1  1
    0  1  1
    0  0  0     this will the right answer, but cosidering next case, we get

Scan IV
    0  1  0
    0  1  0
    0  0  0      but this case should not be considered here, right?

Thanks and Regards,
K.V.Chandra Kumar


On 23/11/2007, Dave <[EMAIL PROTECTED]> wrote:
>
>
> I was pretty careless with cut and paste from Case 1. Let's try Case 2
> again
> Start:
> 1 1 0
> 1 1 1
> 0 1 1
>
> After first scan:
> 1 1 0
> 1 1 1
> 0 1 0
>
> After second scan:
> 0 1 0
> 0 1 1
> 0 1 0
>
> After third scan:
> 0 0 0
> 0 1 1
> 0 1 0
>
> It looks like I need a 4th step. If the lower right element is zero,
> zero the last row and the last column.
>
> 0 0 0
> 0 1 0
> 0 1 0
>
> The simplest case which requires this missing step is
> 1 1 1
> 1 1 1
> 1 1 0
>
> which should produce
>
> 1 1 0
> 1 1 0
> 0 0 0
>
> The four-step algorithm can be streamlined slightly as follows:
>
> Scan the array. If the i,j element is zero, set the last element of
> row i and the last element of column j to zero.
>
> Second, scan the last row, ignoring the last element, and zero every
> column that ends with a zero.
>
> Third, scan the last column, including the last element, and zero
> every row that ends with a zero.
>
> Finally, if the last element in the last row is zero, zero the last
> column.
>
> This touches every element at most 3 times; i.e., if the array has m
> rows and n columns, the algorithm is O(1) in space and O(m*n) in
> time.
>
> Dave
>
> On Nov 23, 2:20 am, "chandra kumar" <[EMAIL PROTECTED]>
> wrote:
> > I have some questions in case 2.... questions inlined..
> >
> > Thanks and regards,
> > K.V.Chandra kumar.
> >
> > On 22/11/2007, Dave <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> >
> >
> > > Case 1
> > > Start:
> > > 0 1 1
> > > 1 1 1
> > > 1 1 1
> >
> > > After first scan:
> > > 0 1 0
> > > 1 1 1
> > > 0 1 1
> >
> > > After second scan:
> > > 0 1 0
> > > 0 1 1
> > > 0 1 1
> >
> > > After third scan:
> > > 0 0 0
> > > 0 1 1
> > > 0 1 1
> >
> > > Case 2
> > > Start:
> > > 1 1 0
> > > 1 1 1
> > > 0 1 1
> >
> > > After first scan:
> > > 0 1 0             how did we get 0 in the first row first column, we
> > > should only alter the last row and column, right?
> > > 1 1 1
> > > 0 1 0
> >
> > > After second scan:
> > > 0 0 0            how did we get these zero, only columns are to be
> > > changed, right?
> > > 0 1 1
> > > 0 0 0
> >
> > > After third scan:
> > > 0 0 0
> > > 0 1 0            how did we get this as, ast element is ignored,
> right?
> > > 0 0 0
> >
> > > Hope this helps.
> > > Dave
> >
> > > On Nov 22, 9:34 am, "chandra kumar" <[EMAIL PROTECTED]>
> > > wrote:
> > > > Hi Dave,
> > > >     Can you explain your algo for these 2 cases...
> >
> > > >     0  1  1            1  1  0
> > > >   1  1  1            1  1  1
> > > >   1  1  1            0  1  1
> >
> > > >     Please explain me in steps cause we tried the same problem and
> can't
> > > get
> > > > it done for without using extra space. ( we used 1 extra space, if
> the
> > > > array can contain only 0 or 1 and no other number, otherwise we
> store
> > > some
> > > > other number indicating a yet to become zero and proceed, in the
> later
> > > case
> > > > we need no extra space )
> > > > Thanks and Regards,
> > > > K.V.Chandra Kumar
> >
> > > > On 15/11/2007, Dave <[EMAIL PROTECTED]> wrote:
> >
> > > > > Scan the array. If the i,j element is zero, set the last element
> of
> > > > > row i and the last element of column j to zero. Then, scan the
> last
> > > > > row, ignoring the last element, and zero every column that ends
> with a
> > > > > zero. Similarly, scan the last column, ignoring the last element,
> and
> > > > > zero every row that ends with a zero. This touches every element
> at
> > > > > most 3 times; i.e., if the array has m rows and n columns, the
> > > > > algorithm is O(1) in space and O(m*n) in time.
> >
> > > > > Dave
> >
> > > > > On Nov 14, 1:27 pm, geekko <[EMAIL PROTECTED]> wrote:
> > > > > > Given an array of 0's and 1's whenever you encounter an 0 make
> > > > > > corresponding column and row elements 0. How could you do that
> > > > > > efficiently(minimum time and minimum space complexity)? This
> > > question
> > > > > > is taken from placementsindia.blogspot.com- Hide quoted text -
> >
> > > > - Show quoted text -- 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 [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to