欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

LeetCode:718 最长重复子数组 C - 输入:nums1 = [0,0,0,0,0,0], nums2 = [0,0,0,0,0] 输出: 55 小贴士

最编程 2024-03-30 07:00:50
...
  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 100

int findLength(int* nums1, int nums1Size, int* nums2, int nums2Size) {

    int dp[nums1Size+1][nums2Size+1];

    //dp[i][j]

    int i,j,max=0;

    //初始化

    for(i=0;i<nums1Size;i++){

        dp[i][0]=0;

    }

    for(j=0;j<nums2Size;j++){

        dp[0][j]=0;

    }

    //递推公式

    for(i=1;i<=nums1Size;i++){

        for(j=1;j<=nums2Size;j++){

            if(nums1[i-1] == nums2[j-1]){

                dp[i][j] = dp[i-1][j-1]+1;

            }

            else

            dp[i][j] =0;

            max = max > dp[i][j] ? max :dp[i][j];

        }

    }

    return max;

}