Минимальное количество значений в массиве - C#

Узнай цену своей работы

Формулировка задачи:

Допустим имеется одномерный массив
Листинг программы
  1. double[] mas = new double[] { 1, 1, 2, 2, 3, 4, 4, 4, 1, 0}
Нужно определить и вывести на экран какое число в массиве отличающееся от нуля имеет меньше всего повторений В данном случае должно быть min=3. Что-то ничего в голову не приходит как это реализовать.

Решение задачи: «Минимальное количество значений в массиве»

textual
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.     double[] mas = new double[] { 1, 1, 2, 2, 3, 4, 4, 4, 1, 0 };
  4.  
  5.     //1
  6.     Dictionary<double, int> groups = new Dictionary<double, int>();
  7.  
  8.     for (int i = 0; i < mas.Length; i++)
  9.     {
  10.         if (mas[i] == 0)
  11.             continue;
  12.  
  13.         if (!groups.ContainsKey(mas[i]))
  14.             groups[mas[i]] = 1;
  15.         else
  16.             groups[mas[i]]++;
  17.     }
  18.  
  19.     double minKey = 0;
  20.     int minCount = mas.Length + 1; //Что-то достаточно большое, чтобы первый встреченный элемент был заведомо меньше
  21.     foreach (var item in groups)
  22.     {
  23.         if (item.Value < minCount)
  24.         {
  25.             minCount = item.Value;
  26.             minKey = item.Key;
  27.         }
  28.     }
  29.  
  30.     //2
  31.     //var minKey = mas.GroupBy(x => x).Where(x => x.Key != 0).OrderBy(x => x.Count()).First().Key;
  32.  
  33.     Console.WriteLine(minKey);
  34. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы