Leetcode Link: 718. 最长重复子数组 - 力扣(LeetCode)

题目

给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度。

解法一

真的就是暴力干他娘的,但是我不知道属于什么左程云模型

    def findLength(self, nums1: List[int], nums2: List[int]) -> int:
 
        # 以 i, j 开始的最长公共子序列的长度
        def process(i,j):
            if i == len(nums1) or j == len(nums2):
                return 0         
            if nums1[i] == nums2[j]:
                return process(i+1, j+1) + 1
            else:
                return 0
 
        res = 0
        for idx in range(len(nums1)):
            for jdx in range(len(nums2)):
                res = max(res, process(idx, jdx))
        return res

解法二

思路

题解

解法三

思路

题解

启发和联系