Найти все возможные последовательности из 3 повторяющихся чисел в 2d массиве - PullRequest
0 голосов
/ 19 сентября 2018

Допустим, у меня есть следующий массив 2d:

int[][] array = {{1,4,4,6,6,3},
                {4,8,6,5,7,3},
                {6,6,9,3,3,9}};

Мне нужно найти все последовательности из 3 или более повторяющихся чисел, например, в этом массиве вывод должен быть 3, потому чтоу нас есть 3 раза 4, пять раз 6 и 3 раза 3, последовательности должны быть диагональными или горизонтальными.Я как это решить.Помогите мне, пожалуйста.спасибо.

1 Ответ

0 голосов
/ 19 сентября 2018

Я пробовал что-то вроде этого:

int[][] arrays = new int[][] {
    new []{1,4,4,6,6,3},
    new []{4,8,6,5,7,3},
    new []{6,6,9,3,3,9}
};

var list = new List<int>();

foreach (var array in arrays)
    list.AddRange(array);

var result = list.GroupBy(i => i)
    .Select(g => new { Value = g.Key, Count = g.Count() })
    .Where(x => x.Count > 2);

Поскольку вы хотите использовать все массивы вместе, вы можете поместить их все в один список.С этим списком вы можете посчитать числа с помощью linq.Переменная result содержит все элементы, которые три или более раз в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...