Leetcode 1035.不相交的线
这题目其实不难就是我题目刷的太少都没看出来LCS。这题要比我们学的那个LCS问题简单,只用输出长度。就一个dp数组就行,不用记录轨迹。外加上Java自带的函数太好用了,就是运行慢。这题目主要的点就是求出动态规划方程
两种情况。1.dp[i][j]=dp[]i-1][j-1]+1(Xi=Yj)
2.dp[i][j]=max(dp[i-1][j],dp[i][j-1]) (Xi!=Yi)
class Solution {
public int maxUncrossedLines(int[]nums1,int[] nums2) {
int i,j;
int m,n;
m=nums1.length;
n=nums2.length;
int[][] dp=new int[m+1][n+1];
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
if(nums1[i-1]==nums2[j-1])
{
dp[i][j]=dp[i-1][j-1]+1;
}
else
{
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);
}
}
}
return dp[m][n];
}
}