欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年09月03日 10:18:34   投稿:whsnow  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)找出數(shù)組中最長的連續(xù)數(shù)字序列的方法,需要的朋友可以參考下

原始題目:

給定一個(gè)無序的整數(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:序列步長(增量)??蛇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)文章

  • bootstrap-table后端分頁功能完整實(shí)例

    bootstrap-table后端分頁功能完整實(shí)例

    這篇文章主要介紹了bootstrap-table后端分頁功能,結(jié)合完整實(shí)例形式分析了bootstrap-table后端請求、數(shù)據(jù)分頁功能具體步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-06-06
  • JS堆棧內(nèi)存的運(yùn)行機(jī)制詳解

    JS堆棧內(nèi)存的運(yùn)行機(jī)制詳解

    棧內(nèi)存主要用于存儲(chǔ)各種基本類型的變量,包括Boolean、Number、String、Undefined、Null,以及對象變量的指針(地址值),這篇文章主要介紹了JS堆棧內(nèi)存的運(yùn)行機(jī)制,需要的朋友可以參考下
    2022-06-06
  • 使用 JavaScript 進(jìn)行函數(shù)式編程 (一) 翻譯

    使用 JavaScript 進(jìn)行函數(shù)式編程 (一) 翻譯

    本文是函數(shù)式編程系列的第一篇文章。這里我會(huì)簡要介紹一下編程范式,然后會(huì)直接介紹使用 Javascript 進(jìn)行函數(shù)式編程的概念,因?yàn)?JavsScript 是最被認(rèn)可的函數(shù)式程序語言之一。我們鼓勵(lì)讀者通過參考資料部分進(jìn)一步了解這一迷人的概念
    2015-10-10
  • 微信小程序上傳帖子的實(shí)例代碼(含有文字圖片的微信驗(yàn)證)

    微信小程序上傳帖子的實(shí)例代碼(含有文字圖片的微信驗(yàn)證)

    這篇文章主要介紹了小程序上傳帖子(含有文字圖片的微信驗(yàn)證)的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • JS 數(shù)組和對象的深拷貝操作示例

    JS 數(shù)組和對象的深拷貝操作示例

    這篇文章主要介紹了JS 數(shù)組和對象的深拷貝操作,結(jié)合實(shí)例形式分析了JS 數(shù)組和對象的深拷貝基本原理與操作技巧,需要的朋友可以參考下
    2020-06-06
  • JavaScript如何把兩個(gè)數(shù)組對象合并過程解析

    JavaScript如何把兩個(gè)數(shù)組對象合并過程解析

    這篇文章主要介紹了JavaScript如何把兩個(gè)數(shù)組對象合并過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • js實(shí)現(xiàn)3d懸浮效果

    js實(shí)現(xiàn)3d懸浮效果

    本文主要分享了js實(shí)現(xiàn)3d懸浮效果的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • js取得當(dāng)前網(wǎng)址

    js取得當(dāng)前網(wǎng)址

    用js獲取當(dāng)前網(wǎng)頁的網(wǎng)址,平時(shí)一直用location.href;下一篇我會(huì)把document.url和location.href對比一下
    2008-05-05
  • 使用js簡單實(shí)現(xiàn)了tree樹菜單

    使用js簡單實(shí)現(xiàn)了tree樹菜單

    使用js簡單實(shí)現(xiàn)了樹菜單!具體實(shí)現(xiàn)實(shí)例代碼如下,相信自己你一定可以實(shí)現(xiàn)的更好
    2013-11-11
  • 新浪中用來顯示flash的函數(shù)

    新浪中用來顯示flash的函數(shù)

    新浪中用來顯示flash的函數(shù)...
    2007-04-04

最新評論