Последната задача от седма глава


0

Здравейте! Моля някой който  знае синтаксиса на Java да ми помогне, ще съм ви много благодарен, защото това последното задание никак немога да го реша или да намеря решения във интернет. Ето я и задачата:

17.

Напишете програма, която по подадена матрица намира най-голямата
област от еднакви числа. Под област разбираме съвкупност от съседни
(по ред и колона) елементи. Ето един пример, в който имаме област,
съставена от 13 на брой еднакви елементи със стойност 3:

1  3  2  2  2  4

3  3  3  2  4  4

4  3  1  2  3  3         ==>13

4  3  1  3  3  1

4  3  3  3  1  1

Решение:

Може да използвате
алгоритми за обхождане на граф, известни с названията "DFS" (Depthfirst-
search) или "BFS" (Breadth-first-search). Потърсете информация и
примери за тях в Интернет.

Бих могъл да исползвам 2 for цикъла които да проверяват всички съседни елемента и няколко променливи които при намиране на съседен елемент да се повишават на 1 единица, в случай на отсъствие на съседен елемент да се съхранява резултата като максимум във втора променлива и нумерацията да се започва от 1 за следващият обект, след което да се сравняват двете променливи но това ми се струва неправилно! Трябва да исползвам сортиране по широчина и дълбочина но незнам как,  алгоритмите които ги намирам във интернета са ми абсолютно непознати, моля подскажете как да исползвам

Depth - first - search или Breadth - first - search




Отговори



0

Привет!

Виж погледни това примерно решение. Използвал съм алгоритъма DFS с рекурсия. Общо взето лабиринти, пъзели или задачи от рода да се изчерпа или изходи от всички възможни варианти по - лесно се решават с рекурсия. Мисля че сравнително лесно е написано и ще я разбереш.