最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)找出數(shù)組中最長的連續(xù)數(shù)字序列

 更新時間:2014年09月03日 10:18:34   投稿:whsnow  
這篇文章主要介紹了JavaScript實現(xiàn)找出數(shù)組中最長的連續(xù)數(shù)字序列的方法,需要的朋友可以參考下

原始題目:

給定一個無序的整數(shù)序列, 找最長的連續(xù)數(shù)字序列。

例如:

給定[100, 4, 200, 1, 3, 2],

最長的連續(xù)數(shù)字序列是[1, 2, 3, 4]。

小菜給出的解法:

function maxSequence(array,step){
var _array = array.slice(), //clone array
_step = 1,
_arrayTemp = [],
i = 0;

var parseLogic = {
//result container
parseResults: [],
//set value to array,what's the last array of parseResults
set: function(n){
this.parseResults[this.parseResults.length-1].push(n);
},
//get the last array from parseResults
get: function(){
return this.parseResults[this.parseResults.length-1];
},
//put a new array in parseResults
addItem: function(){
this.parseResults.push([]);
},
//sort parseResults
sortByAsc: function(){
this.parseResults.sort(function(a,b){
return a.length - b.length;
});
}
};

//check params
_step = step || _step;

//sort array by asc
_array.sort(function(a,b){
return a - b;
});

//remove repeat of data
for(i = 0;i<_array.length;i++){
if(_array[i] != _array[i+1]){
_arrayTemp.push(_array[i]);
}
}
_array = _arrayTemp.slice();
_arrayTemp = [];

//parse array
parseLogic.addItem();
for(i = 0;i<_array.length;i++){
if(_array[i]+_step == _array[i+1]){
parseLogic.set(_array[i]);
continue;
}
if(_array[i]-_step == _array[i-1]){
parseLogic.set(_array[i]);
parseLogic.addItem();
}
}

//sort result
parseLogic.sortByAsc();

//get the max sequence
return parseLogic.get();

}

調(diào)用說明:

方法名稱:

maxSequence(array,step)

參數(shù)說明:

array:要查找的數(shù)組。必要。

step:序列步長(增量)??蛇x,默認為1。

返回值:

此方法不會改變傳入的數(shù)組,會返回一個包含最大序列的新數(shù)組。

調(diào)用示例:

maxSequence([5,7,2,4,0,3,9],1); //return [2,3,4,5]
maxSequence([5,7,2,4,0,3,9],2); //return [5,7,9]

相關(guān)文章

最新評論

睢宁县| 沁源县| 淳化县| 神农架林区| 资阳市| 涪陵区| 绵阳市| 抚州市| 巴彦淖尔市| 上饶县| 多伦县| 沅陵县| 容城县| 竹山县| 阿合奇县| 裕民县| 孝感市| 石楼县| 昭通市| 乌审旗| 尚志市| 仪陇县| 岗巴县| 北辰区| 利辛县| 雷州市| 盈江县| 山阳县| 宁明县| 武城县| 浏阳市| 卢湾区| 葫芦岛市| 新巴尔虎左旗| 西乡县| 清镇市| 昭通市| 界首市| 潍坊市| 铜陵市| 临江市|