最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何找到最长的公共子数组

SEO心得admin160浏览0评论
本文介绍了如何找到最长的公共子数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这是我的问题:我在javascript中有5个这样的整数数组:

here is my problem: I have 5 arrays of integer like these in javascript:

array1 = [0, 1, 2, 3, 4]; array2 = [9, 1, 2, 3, 4]; array3 = [10, 1, 2, 11, 4]; array4 = [12, 1, 2, 13, 4]; array5 = [14, 1, 2, 15, 4];

我必须找到最长的公共子数组。在这种情况下,我必须检索这样的数组: [1、2、4] 。

I have to found the longest common subarray. In this case I have to retrieve an array like this: [1, 2, 4].

对于记录,我不会在数组内发现重复,我的主要目标不是执行速度。

For the records, I won't find repetitions inside arrays and my main goal is not execution speed.

谢谢

推荐答案

尝试一下:

var array1 = [0, 1, 2, 3, 4]; var array2 = [9, 1, 2, 3, 4]; var array3 = [10, 1, 2, 11, 4]; var array4 = [12, 1, 2, 13, 4]; var array5 = [14, 1, 2, 15, 4]; // join everything into one array var all = array1.join(',')+','+array2.join(',')+','+array3.join(',')+','+array4.join(',')+','+array5.join(','); all = all.split(','); // get an object with all unique numbers as keys var keys = {}; for(var i=0; i<all.length; i++) keys[all[i]] = 1; console.log(keys); // generate an array with values present in all arrays var common = []; for(var x in keys) { if(array1.indexOf(parseInt(x)) != -1 && array2.indexOf(parseInt(x)) != -1 && array3.indexOf(parseInt(x)) != -1 && array4.indexOf(parseInt(x)) != -1 && array5.indexOf(parseInt(x)) != -1) { common.push(x); } } console.log(common);
发布评论

评论列表(0)

  1. 暂无评论