Многомерни Масиви: 07. Largest area in matrix


0

Здравейте колеги!

Имам проблем със задача 7 от домашното за многомерните масиви.

Реших да я направя с рекурсия и всичко изглежда наред както и дебъгването е наред :) но защо получавам 70/100 точки гърми ми за грешен резултат първите 3 теста и незнам защо.

Ако някой ми каже какво съм сбъркал защото това ми е една от първите задачи които решавам с рекурсия :D

Ето го и кода:

http://pastebin.com/DTkHUJ64

Благодаря предварително!




Отговори



3

http://pastebin.com/iPfMPijx - може да разгледаш, преправих го малко.

lastRow, lastCol и втория if като цяло са излишни, обаче създават верни решения в 7/10 случая, много е гадно така :) Трябва и 

usedNums[row, col] да е в началото преди проверките - разгледай решението да се ориентираш


от georgivelikov (1844 точки)


0

Мерси колега ! :)

За lastRow и lastCol ги има защото преди нямах масив с usedNums но после го сложих обаче пак  не разбрах каква е разликата между моят код и оправеният от тебе имам предвид според мен трябва да излезе едно и също ?


от Merhatt (1406 точки)

1

Честно казано и аз малко се озадачих защо дава различни резултати :)) 

Мисля че влизаш един път повече в рекурсията, от колкото трябва, което е свързано със сетването на true и false в булевата матрица. А пък ти дава верни 70 точки, защото тая бъгава проверка при втория if с lastRow и lastCol понякога спира излишното влизане последния път :D

Тази част: row - 1 != lastRow, също мисля че трябва да е row-1 != -1, ако смениш така ти дава за нулевия тест 14, вместо 13, т.е. един път повече влизаш. 

Надявам се да съм бил полезен, че и аз се обърках малко


от georgivelikov (1844 точки)