@roflanPominki

Можно ли удалить повторяющиеся элементы из маcсива написав меньше кода чем я?

Есть ли способ улучшить(используя более продвинутые возможности c#) мой алгоритм?
int[] array = { 1, 2, 33, 44, 44,44,44 ,33, 22, 15 };
for (int i = 0; i < array.Length; i++)
{
    for (int k = i+1; k < array.Length; k++)
    {
        if (array[i] == array[k])
        {
            array[i] = 0;
        }
    }
}
int[] numbers = new int[array.Length - array.Count(n => n == 0)];
int j = 0;
for (int i = 0; i < array.Length; i++)
{
    if(array[i] != 0)
    {
        numbers[j] = array[i];
        j++;
    }
}
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
Adler_lug
@Adler_lug
Посмотрите на Distinct()
Ответ написан
twobomb
@twobomb
int[] array = { 1, 2, 33, 44, 44, 44, 44, 33, 22, 15 };
            array = array.Distinct().ToArray();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Myclass
Переделанный Counting Sort подошел думаю лучше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы