使用动态编程的两个阵列之间的最小距离

时间:2013-12-01 07:12:15

标签: arrays dynamic-programming

我有2个数组,A和B,not necessarily of the same size。 2个元素a(来自A的元素)和b(来自B的元素)之间的距离是abs(a-b)。

I am getting wrong answer on my test cases . what changes can i do?.

以下是我的解决方案:

为简单起见假设:数组基于索引1和大小(A)>大小(B)

dp[i][j] = minimum distance taking A[1..i] and B[1..j] 

memset(dp,INFINITY)

for(j=1;j<=size(B);j++) // A is empty
   dp[0][j] = B[j]  

for(j=1;j<=size(A);j++)  // B is empty
   dp[j][0] = A[j]  

dp[0][0] = 0

for(i=1;i<=size(A);i++)     
    for(j=1;j<=size(B);j++)
        dp[i][j] = min( dp[i][j-1] ,     // we don't take A[i]
                        dp[i-1][j-1] + abs(A[i]-B[j])   // we take this pair and take difference
                    )
return dp[size(A)][size(B)]

编辑:这不是作业。我刚刚在互联网上找到了它,并考虑试一试。

0 个答案:

没有答案