JavaScript实现列出数组中最长的连续数

标签:公司介绍    日期:2019-01-15 15:03    录入:美娱国际平台注册    浏览:

  

[JavaScript,连续数]JavaScript实现列出数组中最长的连续数

  

原始题目:  

  

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

  

  

例如:  

  

给定[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;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。

  

  

返回值:  

  

此方法不会改变传入的数组,会返回一个包含最大序列的新数组。

  

  

调用示例:  

  

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简单实现城市二级联动选择插件的方法
下一篇:没有了
相关文章阅读
点击右上角的分享按钮即可收藏美娱国际平台注册 随时随地与好友一起分享精彩内容噢