国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現列出數組中最長的連續數

2019-11-20 13:33:53
字體:
來源:轉載
供稿:網友

原始題目:

給定一個無序的整數序列, 找最長的連續數字序列。

例如:

給定[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]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东港市| 南和县| 夹江县| 姜堰市| 门源| 襄汾县| 涿州市| 曲阜市| 通化县| 剑川县| 黔南| 龙门县| 九寨沟县| 南通市| 九江市| 沈阳市| 平山县| 丁青县| 浠水县| 融水| 辉县市| 刚察县| 公安县| 浪卡子县| 福建省| 桓台县| 徐州市| 郓城县| 临安市| 青川县| 信宜市| 通州市| 固原市| 当阳市| 麻栗坡县| 郯城县| 长岭县| 建平县| 长寿区| 清涧县| 修武县|