虽然很多人说记模板提升空间有限,但是对于我这种菜鸟级别的人来说。能做的也只有记记模板了!
希望这个模板能帮到你,如果有更好的模板记得告诉我哦!!谢谢。
二维代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n,m,a[505],b[505],dp[505][505];
int LICS()
{
int max,i,j;
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
{
max=0;
for(j=1;j<=m;j++)
{
dp[i][j]=dp[i-1][j];
if(a[i]>b[j]&&max<dp[i-1][j])
max=dp[i-1][j];
if(a[i]==b[j])
dp[i][j]=max+1;
}
}
max=0;
for(i=1;i<=m;i++)
{
if(max<dp[n][i])max=dp[n][j];
}
return max;
}一维代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int a[505],b[505],dp[505],n,m;
int LICS()
{
int i,j,MAX;
memset(dp,0,sizeof(dp));
for(i = 1; i<=n; i++)
{
MAX = 0;
for(j = 1; j<=m; j++)
{
if(a[i]>b[j] && MAX<dp[j])
MAX = dp[j];
if(a[i]==b[j])
dp[j] = MAX+1;
}
}
MAX = 0;
for(i = 1; i<=m; i++)
if(MAX<dp[i])
MAX = dp[i];
return MAX;
} 原文:http://blog.csdn.net/jiangx1994/article/details/38010605