一、题目
二、代码
class Solution
{
public:
int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2)
{
int i,j;
int return_int=0;
vector<vector<int>> dp(nums1.size(),vector<int>(nums2.size(),0));
for(i=0;i<nums1.size();i++)
{
for(j=0;j<nums2.size();j++)
{
if(i>=1&&j>=1)
{
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
if(nums1[i]==nums2[j]) dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1);
}
else if(i==0&&j!=0)
{
if(nums1[i]==nums2[j]) dp[i][j]=1;
else dp[i][j]=dp[i][j-1];
}
else if(i!=0&&j==0)
{
if(nums1[i]==nums2[j]) dp[i][j]=1;
else dp[i][j]=dp[i-1][j];
}
else
{
if(nums1[i]==nums2[j]) dp[i][j]=1;
}
if(dp[i][j]>return_int) return_int=dp[i][j];
}
}
return return_int;
}
};