最长公共子序列(连续)
2016-03-07 22:12
281 查看
int solution(int a[],int n,int b[],int m)
{
if(!a||!b)
return 0;
int dp[n+1][m+1];
int res=INT_MIN;
memset(dp,sizeof(dp),0);
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j){
if(a[i-1]==b[j-1])
dp[i][j]=dp[i-1][j-1]+1;
if(res<dp[i][j])
res=dp[i][j];
}
return res;
}
{
if(!a||!b)
return 0;
int dp[n+1][m+1];
int res=INT_MIN;
memset(dp,sizeof(dp),0);
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j){
if(a[i-1]==b[j-1])
dp[i][j]=dp[i-1][j-1]+1;
if(res<dp[i][j])
res=dp[i][j];
}
return res;
}