@ Optimization ... O(N).. single run O(n^2)

Basically in a single run we can calculate the maximum value using
praveen's logic..

Say, A[N] is the array of integers..

And X[N+1] stores the intermediate values for maximum size subarray...


int max = 0;
int strtind = -1;
int endind = -1;

for(int i =0; i<= N; ++i)
    X[i] = 0;

for (int i = 0; i < N; ++i)
   for (j = N; j > 0; --j)
   {
        X[j] =  ( abs(A[i] - A[j]) > K ) ? 0 : 1+ min( X[j],
X[j-1] ) ;
        if ( A[j] > max)
        {
             max = A[j];
             strtind = i - max + 1;
             endind = j - 1;
        }
   }


On Jan 3, 12:57 am, Lucifer <[email protected]> wrote:
> @above..
> I m sorry,
> A would be 1 2 3 4 5 ..
>
> On Jan 3, 12:03 am, atul anand <[email protected]> wrote:
>
>
>
>
>
>
>
> > @praveen : i guess we can optimize the space to O(n);
>
> > if diff b/w two number is <=K then A[i]=A[i-1]+1;
>
> > if condition fails temp_maxLen=A[i-1];
> > if(temp_maxlen > maxLen)
> > {
> >         maxLen=temp_maxlen;
>
> > }

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

Reply via email to