状态转移方程
1.if i=0 || j=0 arr[i][j]=0
2.if str1[i]==str2[j] arr[i][j]=arr[i-1][j-1]+1 (左上角+1)
3.if str1[i]!=str2[j] arr[i][j]=max(arr[i][j-1],arr[i-1][j]) (左边或上边)
下边程序偏移1位
int arr[1001][1001]={0};
int maxStrLen(string s,string t)
{
int maxv=-1;
for(int i=0;i<s.size();i++)
{
for(int j=0;j<t.size();j++)
{
if(s[i]==t[j])
{
arr[i+1][j+1]=arr[i][j]+1;
}
else
{
arr[i+1][j+1]=arr[i][j+1]>arr[i+1][j]?arr[i][j+1]:arr[i+1][j];
}
if(maxv<arr[i+1][j+1])maxv=arr[i+1][j+1];
}
}
return maxv;
}