原始题目:
给定一个无序的整数序列, 找最长的连续数字序列。
例如:
给定[100,4,200,1,3,2],
最长的连续数字序列是[1,2,4]。
小菜给出的解法:
代码如下:
.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();
}
调用说明:
maxSequence(array,step)
参数说明:
array:要查找的数组。必要。
step:序列步长(增量)。可选,默认为1。
返回值:
调用示例: