Maison  >  Article  >  interface Web  >  JavaScript implémente la liste du nombre consécutif le plus long dans un tableau_javascript skills

JavaScript implémente la liste du nombre consécutif le plus long dans un tableau_javascript skills

WBOY
WBOYoriginal
2016-05-16 16:23:271135parcourir

Titre original :

Étant donné une séquence non ordonnée d'entiers, trouvez la plus longue séquence de nombres consécutifs.

Par exemple :

Étant donné [100, 4, 200, 1, 3, 2],

La séquence continue de nombres la plus longue est [1, 2, 3, 4].

La solution donnée par Xiao Cai :

Copier le code Le code est le suivant :

fonction maxSequence (tableau, étape) {
var _array = array.slice(), //cloner un tableau
_étape = 1,
​ _arrayTemp = [],
je = 0;
var parseLogic = {
//conteneur de résultat
Analyser les résultats : [],
//définit la valeur sur le tableau, quel est le dernier tableau de parseResults
ensemble : fonction(n){
This.parseResults[this.parseResults.length-1].push(n);
},
// récupère le dernier tableau de parseResults
Obtenir : function(){
Renvoie this.parseResults[this.parseResults.length-1];
},
//mettre un nouveau tableau dans parseResults
AddItem : fonction(){
This.parseResults.push([]);
},
//trier les résultats d'analyse
SortByAsc : fonction(){
This.parseResults.sort(function(a,b){
           return a.length - b.length;
});
>
};
//vérifie les paramètres
_step = étape || _step;
//trier le tableau par asc
_array.sort(fonction(a,b){
Retourner a - b ;
});
//supprimer la répétition des données
pour(i = 0;i<_array.length;i ){
Si(_array[i] != _array[i 1]){
​ _arrayTemp.push(_array[i]);
>
>
_array = _arrayTemp.slice();
_arrayTemp = [];
//analyser le tableau
parseLogic.addItem();
pour(i = 0;i<_array.length;i ){
Si(_array[i] _step == _array[i 1]){
       parseLogic.set(_array[i]);
Continuer ;
>
Si(_array[i]-_step == _array[i-1]){
       parseLogic.set(_array[i]);
       parseLogic.addItem();
>
>
//trier le résultat
parseLogic.sortByAsc();
//obtient la séquence maximale
Renvoie parseLogic.get();
>


Instructions d'appel :

Nom de la méthode :

maxSequence(tableau,étape)

Description du paramètre :

Array : le tableau à rechercher. nécessaire.

step : pas de séquence (incrément). Facultatif, la valeur par défaut est 1.

Valeur de retour :

Cette méthode ne modifiera pas le tableau passé, mais renverra un nouveau tableau contenant la plus grande séquence.

Exemple d'appel :

maxSequence([5,7,2,4,0,3,9],1); //retour [2,3,4,5]

maxSequence([5,7,2,4,0,3,9],2); //retour [5,7,9]

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn