思路:动态规划,填数组(转移方程来自官方)
class Solution {
public:
int longestCommonSubsequence(string text1, string text2) {
int n=max(text1.size(),text2.size());
vector<vector<int>> v(n+1,vector<int>(n+1));
for(int i=0;i<text1.size();++i)
{
for(int j=0;j<text2.size();++j)
{
v[i+1][j+1]=max(v[i+1][j],v[i][j+1]);
if(text1[i]==text2[j])
{
v[i+1][j+1]=max(v[i][j]+1,v[i+1][j+1]);
}
else
v[i+1][j+1]=max(v[i][j],v[i+1][j+1]);
}
}
return v[text1.size()][text2.size()];
}
};