最长公共子序列
d p [ i ] [ j ] dp[i][j] dp[i][j]表示 a 1 a1 a1数组到第 i i i位、 a 2 a2 a2数组到第 j j j位时,最长的公共子序列长度
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a1[i]==a2[j])
dp[i][j]=dp[i-1][j-1]+1;
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
}
}
LIS就是一个长度为 n n n的数列,和 1 , 2 , 3 , . . . , n {1,2,3,...,n} 1,2,3,...,n的LCS