Javascript实现列出数组中最长的连续数字。

Javascript实现列出数组中最长的连续数字。
原标题:

给定一个无序的整数序列,找到最长连续的数字序列。

例如:

给定{ 100, 4, 200,1, 3, 2 },

最长连续数字序列是{ 1, 2, 3和4 }。

小碟子给的解决办法:

复制代码代码如下所示:

功能maxsequence(阵列、步){

无功_array = array.slice(), / /克隆阵列

_step = 1,

_arraytemp = { },

我= 0;

无功parselogic = { {

结果容器

parseresults:{ },

/ /设定值的数组,parseresults最后阵列是什么

集合:函数(n){

这个parseresults { }。parseresults。length-1推(N);

},

/ /获得parseresults最后阵列

获取:函数(){

退货。parseresults {这。parseresults length-1 };

},

/ /把一个新的阵列parseresults

AddItem:函数(){

This.parseResults.push({ });

},

/ /排序parseresults

SortByAsc:函数(){

This.parseResults.sort(功能(A,B){

返回a.length - b.length;

});

}

};

/ /检查参数

_step =步_step | |;

排序数组

_array.sort(功能(A,B){

返回一个B;

});

删除数据重复

为(i = 0;i < _array.length;i++){

如果(_array {我}!= _array {我+ 1 }){

_arraytemp.push(_array {我});

}

}

_array = _arraytemp.slice();

_arraytemp = { };

解析数组

ParseLogic.addItem();

为(i = 0;i < _array.length;i++){

如果(_array {我} + _step = = _array {我+ 1 }){

parselogic.set(_array {我});

继续;

}

如果(_array {我} - _step = = _array {·}){

parselogic.set(_array {我});

ParseLogic.addItem();

}

}

排序结果

ParseLogic.sortByAsc();

获取最大序列

返回parselogic.get();

}
呼叫描述:

方法名称:

maxsequence(数组的步骤)

参数描述:

数组:您要查找的数组。这是必要的。

步骤:序列步长(增量)。可选,默认值为1。

返回值:

此方法不更改传入数组,并返回包含最大序列的新数组。

举例子:

MaxSequence({ 5,7,2,4,0,3,9 },1); / /回报{五}

MaxSequence({ 5,7,2,4,0,3,9 },2); / /回报{ 5,7,9 }

tag:数字连续组中最长电脑软件

相关内容