最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)列出數(shù)組中最長的連續(xù)數(shù)

 更新時(shí)間:2014年12月29日 14:51:19   投稿:hebedich  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)列出數(shù)組中最長的連續(xù)數(shù)的方法及使用,需要的朋友可以參考下

原始題目:

給定一個(gè)無序的整數(shù)序列, 找最長的連續(xù)數(shù)字序列。

例如:

給定[100, 4, 200, 1, 3, 2],

最長的連續(xù)數(shù)字序列是[1, 2, 3, 4]。

小菜給出的解法:

復(fù)制代碼 代碼如下:

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();
}

 
調(diào)用說明:

     方法名稱:

         maxSequence(array,step)

     參數(shù)說明:

         array:要查找的數(shù)組。必要。

         step:序列步長(增量)??蛇x,默認(rèn)為1。

     返回值:

         此方法不會改變傳入的數(shù)組,會返回一個(gè)包含最大序列的新數(shù)組。

     調(diào)用示例:

         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]

相關(guān)文章

最新評論

镇坪县| 偏关县| 闽侯县| 道孚县| 昭通市| 海原县| 高州市| 通山县| 邹平县| 大名县| 岑溪市| 哈巴河县| 苏尼特右旗| 平和县| 枣庄市| 陵川县| 宝丰县| 墨脱县| 太湖县| 郑州市| 迭部县| 龙游县| 广东省| 镇原县| 龙南县| 定陶县| 珠海市| 肥东县| 北宁市| 衡水市| 朝阳市| 库伦旗| 交城县| 拉萨市| 兴宁市| 安乡县| 鹤岗市| 宁强县| 茂名市| 新巴尔虎右旗| 泾源县|