Leetcode:718. Maximum Length of Repeated Subarray
来源:互联网 发布:java开发是做什么的 编辑:程序博客网 时间:2024/06/05 03:19
Description
Given two integer arrays A and B, return the maximum length of an subarray that appears in both arrays.
Example 1:
Input:
A: [1,2,3,2,1]
B: [3,2,1,4,7]
Output: 3
Explanation:
The repeated subarray with maximum length is [3, 2, 1].
Note:
1 <= len(A), len(B) <= 1000
0 <= A[i], B[i] < 100
解题思路
本题求最长公共子数组问题,可采用最容易想到的遍历匹配方法求解
int findLength(vector<int>& A, vector<int>& B) { int max = 0; int count = 0; int j = 0; int lengthA = A.size(); int lengthB = B.size(); for (int i = 0; i < lengthA; ++i) { count = 0; j = 0; if (lengthA - i <= max) break; while (j != lengthB) { if (i + count < lengthA && j + count < lengthB && A[i + count] == B[j + count]) { ++count; } else { if (max < count) { max = count; } count = 0; ++j; } } } return max; }
本题中有很多重复子问题,也可用动态规划进行求解
动态方程为
dp[i][j] = dp[i - 1][j - 1] + 1;
返回结果为
max = dp[i][j] > max ? dp[i][j] : max;
class Solution {public: int findLength(vector<int>& A, vector<int>& B) { int len1 = A.size(); int len2 = B.size(); int max = 0; //初始化赋值为0 vector<vector<int>> dp(len1+1, vector<int>(len2+1,0)); for(int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { if (A[i-1] == B[j-1]) { dp[i][j] = dp[i-1][j-1]+1; max = dp[i][j] > max ? dp[i][j] :max; } } } return max; }};
阅读全文
0 0
- Leetcode 718. Maximum Length of Repeated Subarray
- Leetcode 718. Maximum Length of Repeated Subarray
- leetcode 718. Maximum Length of Repeated Subarray
- [LeetCode]718. Maximum Length of Repeated Subarray
- [LeetCode] 718. Maximum Length of Repeated Subarray
- [leetcode] 718. Maximum Length of Repeated Subarray
- Leetcode:718. Maximum Length of Repeated Subarray
- leetcode 718( Maximum Length of Repeated Subarray)
- Leetcode | Maximum Length of Repeated Subarray
- LeetCode #718 Maximum Length of Repeated Subarray
- Leetcode | Maximum Length of Repeated Subarray
- LeetCode:Maximum Length of Repeated Subarray
- [leetcode]Maximum Length of Repeated Subarray
- [LeetCode]Maximum Length of Repeated Subarray
- Leetcode 718 Maximum Length of Repeated Subarray
- LeetCode:Maximum Length of Repeated Subarray
- leetCode-Maximum Length of Repeated Subarray
- LeetCode题解系列--718. Maximum Length of Repeated Subarray
- Retrofit的url 的拼接
- Java开发微信公众号(一)——微信开发环境搭建
- JPA
- 基于ActiveAndroid框架的BaseModel
- computer vision笔记(二)
- Leetcode:718. Maximum Length of Repeated Subarray
- Dto--数据传输对象的应用
- C#正则表达式用于手机号判断
- 文章标题
- 腾讯电脑管家(qq电脑管家)官方正式版V12.9.19152.219下载 | 电脑管家官方网下载
- 多线程
- 学习Hadoop的第一课(开始进入大数据的世界)
- Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\calibration_data.py
- raft算法学习笔记