C'est ce que j'ai essayé d'atteindre:
entrée: arr [] = {1, 7, 2, 9, 6}
La paire (1, 2) aura la paire de somme minimale I.e. 1 + 2 = 3 p>sortie: (1,2) = 3 p>
- Parce que la boucle tandis que la boucle est itératrice une fois, je ne suis pas en mesure d'atteindre le résultat prévu. Besoin d'aide !! li> ul> blockQuote>
xxx pré> p>
3 Réponses :
Je pense que ce que vous obtenez fondamentalement les deux plus petits chiffres d'un tableau, j'espère ...
C'est une bonne truc, probablement pas plus efficace d'algorithmie, mais c'est rapide et sale: P>
Arrays.sort(arr);
//This will sort your array.
if(arr.length>1){
System.out.println(arr[0]);
System.out.println(arr[1]);
}
Pour trouver les 2 derniers chiffres, essayez ceci:
int min1 = Integer.MAX_VALUE, min2 = Integer.MAX_VALUE;
for (int i : arr) {
if (i < min1) {
min2 = min1;
min1 = i;
} else if (i < min2) min2 = i;
}
problème corrigé avec cette solution simple: strong> p>
xxx pré> blockQuote>
Vous voulez essentiellement trouver les deux plus petits numéros de la matrice, n'est-ce pas?
Cela signifierait commander le tableau et renvoyer les deux premiers articles :)
Ouais .. Mais émettez actuellement des mensonges dans la boucle tandis que comme elle itière une seule fois.
Pourquoi utilisez-vous
stringbuilder code>? Pourquoi ne pas simplement trouver le plus petit et à côté des plus petits nombres et faire unsystem.out.printf ("sortie: ("% d,% d) =% d% n ", N1, N2, N1, N2, (N1 + N2) ); code>@Wjs Stringbuilder a été utilisé pour formater le résultat, la façon dont elle était censée être. BTW Votre code semble beaucoup plus court et propre. Très appréciée !!
@Armandoballaci Votre idée a fait l'affaire. Merci mon pote !!