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

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

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

原始題目:

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

例如:

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

最長(zhǎng)的連續(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:序列步長(zhǎng)(增量)??蛇x,默認(rèn)為1。

     返回值:

         此方法不會(huì)改變傳入的數(shù)組,會(huì)返回一個(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)文章

最新評(píng)論

邵武市| 太仆寺旗| 石柱| 泌阳县| 宝应县| 济阳县| 福建省| 甘肃省| 柘荣县| 社旗县| 文山县| 冀州市| 清涧县| 正蓝旗| 聊城市| 宜兰市| 岱山县| 密山市| 两当县| 武平县| 嫩江县| 赤壁市| 云梦县| 临江市| 康保县| 轮台县| 桑日县| 陆良县| 天等县| 墨玉县| 云阳县| 甘肃省| 无锡市| 璧山县| 嘉荫县| 棋牌| 客服| 阳朔县| 廉江市| 武隆县| 兴山县|