在 JavaScript 中查找公共子数组的最大长度
问题
我们需要编写一个JavaScript函数,该函数接受两个文字数组arr1和arr2,分别作为第一个和第二个参数。
我们的函数应该返回出现在两个数组中的子数组的最大长度。
例如,如果函数的输入是
输入
const arr1 = [1, 2, 3, 2, 1]; const arr2 = [3, 2, 1, 4, 7];
输出
const output = 3;
输出说明
最大长度的重复子数组是[3,2,1]。
示例
以下是代码-
const arr1 = [1, 2, 3, 2, 1];
const arr2 = [3, 2, 1, 4, 7];
const maximumLength = (arr1 = [], arr2 = []) => {
const dp = new Array(arr1.length + 1).fill(0).map(() => new Array(arr2.length + 1).fill(0))
for (let i = arr1.length - 1; i >= 0; i--) {
for (let j =arr2.length- 1; j >= 0; j--) {
if (arr1[i] === arr2[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1
} else {
dp[i][j] = 0
}
}
};
return dp.reduce((acc, items) => Math.max(acc, ...items), 0)
}
console.log(maximumLength(arr1, arr2));输出结果3
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短