Loading...
Zmyrt avatar Zmyrt 3 Точки

JA2-Task-4-Two-Dimensional

Колеги , малко помощ за 4-та задача от Джъдж Асаинмънт 2.

Работи ми кода , но заради бързодействие не ми издържа на Тест 1 и Тест 4 ...

Става въпрос за 163 милисекунди над лимита .

Ето това ми е кода.Има странно структурирани неща в него , но то е защото започнах накрая да прекроявам по какви ли не начини, за да тръгне

https://pastebin.com/S6v5Kpic 

Тагове:
0
C++ Fundamentals
galin_kostadinov avatar galin_kostadinov 166 Точки

Привет!

Ако махнеш проверката isChecked, ще ти мине на 90/100, но ще гръмне за памет. Тази проверка не ти е нужда понеже ако това е изпълнено:

matrix[i + 1][j] == startChar

то значи не си го презаписал с fillChar.

С използване на стекове нещата вероятно няма да се получат заради ограничението от памет.

Варианта, който е добре да опиташ е чрез рекурсия.

Общо взето, това което си написал в while() го изнасяш в метод(без стековете). Трябва да подаваш matrix по рефереция, за да се променя оригинала.

В main() извикваш този метод чрез нуждните параметри. След това в всяка една проверка - нагоре, надолу... пак викаш този метод с новите координати.

Това извикваш в main()

fillMatrix(startRow, startCol, matrix, rowMatrix, colMatrix, fillChar, startChar);

startRow +(1), startCol - тези параметри променяш, но вместо да ги пълнеш в стек ги викаш във функцията fillMatrix.

Може да си пуснеш да ти я принтира всеки път за да видиш как се попълва...

Поздрави!

 

 

 

0
Zmyrt avatar Zmyrt 3 Точки

Благодаря! Не съм сигурен, че те разбрах за абсолютно всичко,но ще пробвам това, което съм разбрал :)

0
galin_kostadinov avatar galin_kostadinov 166 Точки

Привет!

Това линк за обяснение на рекурсия(от курса по алгоритми е):

https://www.youtube.com/watch?v=7dBQjvoHPHA&feature=youtu.be

Това е нещо, което трябва да си го правил няколко пъти за да го разбираш.

Ако имаш допълнителни въпроси питай.

Поздрави!

0
Zmyrt avatar Zmyrt 3 Точки

Супер ! Много полезен урок е този , но наистина ще иска практика този похват с рекурсията. А дали Джъджа иска 100/100 на абсолютно всички задачи, за да се признае за решен или ти смята някакви проценти за точките ? Питам , защото е удължен срокът за JA2 и понеже се боря с тая последна задача не ми остава време да се добера до новата домашна изобщо....та да знам ако мине с 90/100 да зарязвам и да напредвам с новите задачи . Благодаря за съветите и поздрави!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.