-- C'est Question d'entretien demandé à chaque fois. Maintenant j'ai fait son codage.
static void Main(string[] args)
{
int[] array = new int[] { 4, 8, 4, 1, 1, 4, 8 };
int numDups = 0, prevIndex = 0;
for (int i = 0; i < array.Length; i++)
{
bool foundDup = false;
for (int j = 0; j < i; j++)
{
if (array[i] == array[j])
{
foundDup = true;
numDups++; // Increment means Count for Duplicate found in array.
break;
}
}
if (foundDup == false)
{
array[prevIndex] = array[i];
prevIndex++;
}
}
// Just Duplicate records replce by zero.
for (int k = 1; k <= numDups; k++)
{
array[array.Length - k] = '\0';
}
Console.WriteLine("Console program for Remove duplicates from array.");
Console.Read();
}
5 votes
Utilisez la méthode de l'extension distincte.
1 votes
En effet. C'est plus amusant lorsque le tableau est déjà trié - dans ce cas, cela peut être fait in-place en temps O(n).
0 votes
@Vitim.us Non. Dans mon cas, ce n'est même pas un tableau, mais une List<string>. J'accepte toute réponse qui fait l'affaire. Peut-être, c'est un choc de devoir le faire sur papier.
0 votes
Un meilleur moyen que... ? Et quelle est l'idée de faire un casting vers une collection générique ? Quoi qu'il en soit, à tous ceux qui ressentent l'envie d'ajouter une autre réponse : gardez à l'esprit que la question n'est pas " a comment supprimer les doublons" comme presque tout le monde l'a fait. Toute réponse devrait tenir compte de la complexité du temps et montrer des points de repère. Jusqu'à présent, seules deux réponses ont fait une tentative sérieuse.