Member 13444702 Ответов: 2

Как подсчитать максимальное количество смежных чисел в 2D-массиве nxn и заменить их другим числом?


Например для 2D массива nXn
12001231
12331212
12331212
12331212
12331212
12331212
12331212


Как вычислить элемент, который появляется смежно наибольшее количество раз? Вышеприведенный 2D-массив должен иметь 3 в качестве наибольшего числа смежных встречающихся чисел. Замените их на 4. Таким образом, новый массив должен быть:
12001231
12441212
12441212
12441212
12441212
12441212
12441212


Что я уже пробовал:

начиная с [0][0], я попытался проверить соседей (слева, справа, вверх, вниз) и размножиться. Но я не в состоянии придумать эффективную логику для того же самого.

2 Ответов

Рейтинг:
1

CPallini

Я бы сказал ...максимальное количество смежных равных цифры'.
Сделайте массив, скажем count[10] для хранения суммы непрерывных вхождений цифр 0..9 и uptade это contet во время итерации по входному массиву.
Тогда найти цифру с наибольшим числом и заменить ее во входном массиве должно быть тривиальной задачей.


Patrice T

Будьте осторожны, существует более 1 зоны с одинаковым номером.

Рейтинг:
0

Patrice T

Цитата:
Но я не в состоянии придумать эффективную логику для того же самого.

Не пытайтесь быть эффективными. Прежде всего, найдите работающий алгоритм.
Как только вы нашли решение, подумайте об оптимизации.
Цитата:
начиная с [0][0], я попытался проверить соседей (слева, справа, вверх, вниз) и размножиться.

Это в основном решение.
Оптимизация может заключаться в том, чтобы избежать повторной проверки.