Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript-Implementierung zum Finden der längsten Folge aufeinanderfolgender Zahlen in einem Array_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 16:37:38
Original
2162 Leute haben es durchsucht

Originaltitel:

Bestimmen Sie bei einer gegebenen ungeordneten Folge von ganzen Zahlen die längste Folge aufeinanderfolgender Zahlen.

Zum Beispiel:

Gegeben [100, 4, 200, 1, 3, 2],

Die längste Folge aufeinanderfolgender Zahlen ist [1, 2, 3, 4].

Die Lösung von Xiaocai:

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

}
Nach dem Login kopieren

Anrufanweisungen:

Methodenname:

maxSequence(array,step)

Parameterbeschreibung:

Array: das Array, nach dem gesucht werden soll. notwendig.

Schritt: Schrittgröße der Sequenz (Inkrement). Optional, Standardwert ist 1.

Rückgabewert:

Diese Methode ändert das übergebene Array nicht, sondern gibt ein neues Array zurück, das die größte Sequenz enthält.

Anrufbeispiel:

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]
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage