亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

原始題目:

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

例如:

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

最長的連續(xù)數(shù)字序列是[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();
}

 
調(diào)用說明:

     方法名稱:

         maxSequence(array,step)

     參數(shù)說明:

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

         step:序列步長(增量)。可選,默認為1。

     返回值:

         此方法不會改變傳入的數(shù)組,會返回一個包含最大序列的新數(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)文章

  • javascript中錯誤使用var造成undefined

    javascript中錯誤使用var造成undefined

    這篇文章主要介紹了javascript中錯誤使用var造成undefined的原因,實例分析了錯誤使用var造成undefined的過程,感興趣的小伙伴們可以參考一下
    2016-03-03
  • web開發(fā)跨域原因的多種解決方案

    web開發(fā)跨域原因的多種解決方案

    我們在web項目開發(fā)中,經(jīng)常會遇到各種跨域的問題,本文帶你解決web開發(fā)中多種跨域原因的解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • 異步安全加載javascript文件的方法

    異步安全加載javascript文件的方法

    這篇文章主要介紹了異步安全加載javascript文件的方法,實例分析了javascript實現(xiàn)文件異步加載的具體技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 微信小程序視圖層莫名出現(xiàn)豎線的解決方法

    微信小程序視圖層莫名出現(xiàn)豎線的解決方法

    本文主要介紹了微信小程序視圖層莫名出現(xiàn)豎線的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • JS模擬面向?qū)ο笕猓ǘ?、類型與賦值)

    JS模擬面向?qū)ο笕猓ǘ?、類型與賦值)

    上次,我講了有關(guān)類型區(qū)別和傳遞的問題,現(xiàn)在,我給大家在插上一點有關(guān)類型賦值的問題。
    2011-07-07
  • Locate a File Using a File Open Dialog Box

    Locate a File Using a File Open Dialog Box

    Locate a File Using a File Open Dialog Box...
    2007-06-06
  • WebStorm ES6 語法支持設(shè)置&babel使用及自動編譯(詳解)

    WebStorm ES6 語法支持設(shè)置&babel使用及自動編譯(詳解)

    下面小編就為大家?guī)硪黄猈ebStorm ES6 語法支持設(shè)置&babel使用及自動編譯(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • js移動焦點到最后位置的簡單方法

    js移動焦點到最后位置的簡單方法

    下面小編就為大家?guī)硪黄猨s移動焦點到最后位置的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • JavaScript判斷文件是否存在的實例代碼

    JavaScript判斷文件是否存在的實例代碼

    這篇文章主要給大家介紹了關(guān)于JavaScript判斷文件是否存在的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • ES6 let和const定義變量與常量的應(yīng)用實例分析

    ES6 let和const定義變量與常量的應(yīng)用實例分析

    這篇文章主要介紹了ES6 let和const定義變量與常量的應(yīng)用,結(jié)合實例形式分析了ES6使用let定義變量以及使用const定義常量的相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06

最新評論