2012-12-24 5 views
-4

Comment trouver le deuxième plus grand nombre dans un tableauComment trouver le deuxième plus grand nombre en javascript

+4

Aucun ami maison usine, qu'avez-vous essayé? – Arpit

+1

vous trouvez le nombre le plus élevé, alors vous trouvez le nombre le plus élevé mais inférieur au nombre que vous venez de trouver .. à moins que le tableau ait <3 éléments. O (2n). – bokonic

+0

Ce n'est pas une bonne idée de le fermer parce que dans notre projet, nous avons demandé plusieurs fois cette fonctionnalité à inclure. –

Répondre

1

Si vous exécutez à travers la liste une fois; vous trouverez le nombre le plus élevé. Maintenant, répétez ceci une fois de plus et vous obtiendrez le 2ème plus grand nombre.

2
function getSecondHighest(arrCheck){ 
    var first=0,second=0; 
    for(var i=0;i<arrCheck.length;i++){ 
     if(arrCheck[i] > first){ 
      second = first; 
      first = arrCheck[i]; 
     } 
     else if(arrCheck[i]>second && arrCheck[i]<first){ 
      second = arrCheck[i]; 
     } 
    } 
    return second; 
} 
+0

Cela ne fonctionnera pas si le premier élément du tableau est le nombre le plus élevé. par exemple. [5,4,3,2,1] retournera 0. – Nathan

0

Voir ceci:

var array = [267, 306, 108, 50, 909, 200]; 
var newCopy = [0]; 
for (i = 0; i < array.length; i++) { 
newCopy[i] = array[i]; 
} 
var largest = Math.max.apply(Math, newCopy); 
newCopy.splice(newCopy.indexOf(largest), 1); 
largest = Math.max.apply(Math, newCopy); 
alert(largest);​ 
1
function max(a){ 
var big = a[0]; 
var secondLargest =null; 
for(var i=0;i<a.length;i++){ 
if(a[i]>big){ 
secondLargest = big; 
big=a[i]; 
}else if(a[i]>secondLargest){ 
secondLargest =a[i]; 
} 
} 
return secondLargest; 
} 
+0

Cela ne fonctionnera pas si le premier élément du tableau est le nombre le plus élevé. par exemple. [5,4,3,2,1] retournera 5. – Nathan

Questions connexes