JavaScript实现找出数组中最长的连续数字序列_javascript技巧
程序员文章站
2022-03-19 20:36:31
...
原始题目:
给定一个无序的整数序列, 找最长的连续数字序列。
例如:
给定[100, 4, 200, 1, 3, 2],
最长的连续数字序列是[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 if _array _arraytemp.push _arraytemp="[];" array parselogic.additem for parselogic.set continue result parselogic.sortbyasc the max sequence return parselogic.get>
调用说明:
方法名称:
maxSequence(array,step)
参数说明:
array:要查找的数组。必要。
step:序列步长(增量)。可选,默认为1。
返回值:
此方法不会改变传入的数组,会返回一个包含最大序列的新数组。
调用示例:
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]
推荐阅读
-
js对数组中的数字从小到大排序实现代码_javascript技巧
-
javascript中利用数组实现的循环队列代码_javascript技巧
-
js在数组中删除重复的元素自保留一个(两种实现思路)_javascript技巧
-
js对数组中的数字从小到大排序实现代码_javascript技巧
-
JavaScript实现找出字符串中第一个不重复的字符_javascript技巧
-
js在数组中删除重复的元素自保留一个(两种实现思路)_javascript技巧
-
javascript 折半查找字符在数组中的位置(有序列表)_javascript技巧
-
JavaScript实现列出数组中最长的连续数_javascript技巧
-
JavaScript中去掉数组中的重复值的实现方法_javascript技巧
-
JavaScript中数组的排序、乱序和搜索实现代码_javascript技巧