@mohit

The idea of DP is fine.
When you find the Max i dont think you need to include A[i+1]+B[j+1] because
it can never be greater than both A[i+1]+B[j] and A[i]+B[j+1] since both the
lists are sorted in decreasing order.


On Fri, Apr 30, 2010 at 8:47 PM, mohit ranjan <shoonya.mo...@gmail.com>wrote:

> oops
>
> Sorry didn't read properly
> last algo was for array sorted in ascending order
>
> for this case, just reverse the process
>
>
> A[n] and B[n] are two array
>
> loop=n, i=0, j=0;
>
>
> while(loop>0)  // for n largest pairs
> {
>   print A[i]+B[j];          // sum of first index from both array will be
> max
>
>   foo = MAX ( A[i+1]+B[j], A[i+1]+B[j+1], A[i]+B[j+1] )     // using DP,
> moving forward
>
>   if foo==A[i+1]+B[j]; i++   // only increment A
>   if foo==A[i+1]+B[j+1]; i++; j++   // increment both A and B
>   if foo==A[i]+B[j+1]; j++  // increment only B
>
> }
>
>
>
> Mohit Ranjan
> Samsung India Software Operations.
>
>
> On Fri, Apr 30, 2010 at 8:40 PM, mohit ranjan <shoonya.mo...@gmail.com>wrote:
>
>> Hi Divya,
>>
>>
>> A[n] and B[n] are two array
>>
>> loop=n, i=n-1, j=n-1;
>>
>> while(loop>0)  // for n largest pairs
>> {
>>   print A[i]+B[j];          // sum of last index from both array will be
>> max
>>
>>   foo = MAX ( A[i-1]+B[j], A[i-1]+B[j-1], A[i]+B[j-1] )     // using DP
>> moving backward
>>
>>   if foo=A[i-1]+B[j]; i--   // only reduce A
>>   if foo=A[i-1]+B[j-1]; i--; j--   // reduce both A and B
>>   if foo=A[i]+B[j-1]; j--  // reduce only B
>> }
>>
>> Time: O(n)
>>
>>
>> Mohit Ranjan
>>
>>
>>
>> On Fri, Apr 30, 2010 at 5:35 PM, divya <sweetdivya....@gmail.com> wrote:
>>
>>> Given two sorted postive integer arrays A(n) and B(n) (W.L.O.G, let's
>>> say they are decreasingly sorted), we define a set S = {(a,b) | a \in
>>> A
>>> and b \in B}. Obviously there are n^2 elements in S. The value of such
>>> a pair is defined as Val(a,b) = a + b. Now we want to get the n pairs
>>> from S with largest values. The tricky part is that we need an O(n)
>>> algorithm.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Algorithm Geeks" group.
>>> To post to this group, send email to algoge...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@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 algoge...@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@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 algoge...@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