2013-02-14 4 views
-4

Как найти самый длинный связанный элемент в массиве размером 4 * 5. Говорят, что два элемента соединены, если значение равно одному или по горизонтали или по вертикали. значение не одинаково, если оно представлено по диагонали.Чтобы найти самый длинный связанный элемент в многомерном массиве

Массив

 [ B C D A D 

      D C D A B 

      D C C C A 

      C D B A B ] 

Здесь самая длинная последовательность 5 и его для C

Это может быть отсортирован с использованием самой длинной общей подпоследовательности algorthim, но не знаю, как именно реализовать.

Может ли кто-нибудь помочь мне решить эту проблему?

+0

Где именно такие шесть связное Cs? Если диагональные соединения запрещены, я вижу только пять. – NPE

+0

Прости, да, пять ... – Sasi

ответ

0

Вы можете использовать flood fill algorithm для проверки групп связанных элементов.

Вот алгоритм я бы реализовать:

for each field of the array 
    when the field is not marked as checked 
     use flood-fill to get the connected group the field belongs to 
     for each field which is part of the group 
      mark it as checked   
     when this group got more fields than the larges known group 
      this group is now the largest known group    
Смежные вопросы