1035. 不相交的线(leetcode)

https://leetcode.cn/problems/uncrossed-lines/

class Solution {
    public int maxUncrossedLines(int[] nums1, int[] nums2) {
        // 依据题意,稍加思考可知,是求最长公共子序列
        // f[i][j] = max(f[i-1][j],f[i][j-1],f[i-1][j-1]+1)
        
        int[][] f=new int[nums1.length+1][nums2.length+1];
        for(int i=1;i<=nums1.length;i++)
        {
            for(int j=1;j<=nums2.length;j++)
            {
                f[i][j]=Math.max(f[i-1][j],f[i][j-1]);
                if(nums1[i-1]==nums2[j-1])f[i][j]=Math.max(f[i][j],f[i-1][j-1]+1);
            }
        }
        return f[nums1.length][nums2.length];
    }
}
posted @ 2024-09-08 02:08  风乐  阅读(14)  评论(0)    收藏  举报