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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 16:13:15
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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]


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 博客| 弥勒县| 罗甸县| 铁岭市| 张掖市| 大洼县| 明溪县| 洱源县| 葫芦岛市| 环江| 海淀区| 曲周县| 鄄城县| 冷水江市| 台北市| 榆林市| 洪雅县| 濮阳县| 南昌市| 百色市| 霸州市| 昌邑市| 桑日县| 顺昌县| 郴州市| 禄丰县| 平果县| 远安县| 上饶市| 开平市| 东兴市| 罗定市| 肇庆市| 林口县| 台中市| 新河县| 安塞县| 称多县| 台中市| 承德县| 潍坊市|