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;
}