lundi 18 mars 2024

implementez la methode FindSumPair(numbers, k)

En C#, implementez la methode FindSumPair(numbers, k) qui prend comme entree:

une liste d'entiters positifs numbers,

un nombre entier positif k.

La methode FindSumPair(numbers,k) doit retourner une liste de deux entiers, contenants les indices d'une pair d'entiers dans la liste dont la somme est k.

Notez que:

les indices sont comptés à partir de 0,

Le premier entier de sortie doit representer l'indice inférieur,

Dans le cas ou iil existe plusieurs paires possible dont la somme est égale à la cible retournez la paire dont l'indice de gauche est le plus bas,

Dans le cas deux paires ayant le meme indice de gauche priviléglez la paire dont l'indice de droit est le plus bas.


!!! implémentation ne pas encore verifier !!!

using System; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 }; int k = 7; List<int> pair = FindSumPair(numbers, k); if (pair != null) { Console.WriteLine("Indices de la paire dont la somme est égale à " + k + ": " + pair[0] + ", " + pair[1]); } else { Console.WriteLine("Aucune paire trouvée."); } } static List<int> FindSumPair(List<int> numbers, int k) { Dictionary<int, int> map = new Dictionary<int, int>(); List<int> pair = new List<int>(); for (int i = 0; i < numbers.Count; i++) { int complement = k - numbers[i]; if (map.ContainsKey(complement)) { pair.Add(map[complement]); pair.Add(i); break; // Sortie dès qu'une paire est trouvée } if (!map.ContainsKey(numbers[i])) { map[numbers[i]] = i; } } return pair.Count == 2 ? pair : null; } }

Aucun commentaire:

Enregistrer un commentaire