思路
该题就是求最长公共子序列问题。LeetCode1143. 最长公共子序列_想进阿里的小菜鸡的博客-CSDN博客
和上面的1143题一样的思路
代码
class Solution {
public int maxUncrossedLines(int[] nums1, int[] nums2) {
int dp[][] = new int[nums1.length+1][nums2.length+1];
for(int i =1;i<=nums1.length;i++){
for(int j = 1;j<=nums2.length;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]);
}
}
}
int max=0;
for(int i = 0;i<=nums1.length;i++){
for(int j = 0;j<=nums2.length;j++){
max = Math.max(max,dp[i][j]);
}
}
return max;
}
}