Проблем с задача 05. Bomb Numbers
Здравейте, Колеги,
два от тестовете ми гърмят за време. Ако някой има време да ми погледне кога и да ми каже къде греша, ще съм благодарен!
http://pastebin.com/rRtJ5H2r
Здравейте, Колеги,
два от тестовете ми гърмят за време. Ако някой има време да ми погледне кога и да ми каже къде греша, ще съм благодарен!
http://pastebin.com/rRtJ5H2r
Проблемът е в това, че ако условието във вложения цикъл не е изпълнено:
if (i - bombPower >= 0 && i - bombPower < numbers.Count)
излизаш (чрез кодът в тялото на else) от цикъл, и на i се присвоява стойност -1. Но след това стойността на i се инкрементира и му се присвоява стойност 0. Така, когато външният цикъл отново се "завърти", изчисленията и резултатите от проверката са същите, и получаваш безкраен цикъл.
Здравейте колеги,
И аз имам проблем с тази задача. Ако може някой да погледне кода ми, ще съм много благодарен! Джъдж ми дава 80/100 точки. Гърми на Тест 5. Два дни търся проблема, но немога, да го открия. Благодаря, предварително! https://pastebin.com/8rNewcVc
Здравейте, Колеги,
При мен също задачата гърми на Тест 5. Промених решението и вместо да изтривам елементите на входния лист, ги нулирам. Така решението мина 100/100. Само, че въпросът е Защо? Явно има някаква разлика между лист без елементи и лист с няколко нулеви елемента, но и при двата случая сумата на елементите излиза нула. Ако някой има някакъв отговор, моля да га сподели. Предварително благодаря!
То, че има разлика е ясно. В единия случай елементите съществуват и имат стойност нула, а в другия се изтриват. Така леко си хакнал решението, като идеята си е достойна за похвала. Много ми е интересно, какъв е този Тест 5, при който кода гърми!
Пробвах какви ли не комбинации на входни данни и при двата кода изхода е идентичен.
Ето още едно решение
https://pastebin.com/1EF9YCrH
Използвал съм numbers.RemoveRange(startIndex, count); ,където намирането на стартовият индекс не е проблем,докато за намирането на броя на символите за триене съм пресметнал брoйката на символите от ляво на бомбата и от дясно заедно с бомбата и съм ги събрал като резултат count.Също така при намирането на индекса на бомбата при повече от една съм използвал for цикъл и непонятно за мен int indexNum = numbers.IndexOf(bomb); някak си става oтрицателно число преди да намеря следващият индекс на бомбата , затова с една if (indexNum < 0) проверка прекъсвам for цикъла с break
Пускам и едно решение от мен, ако някой търси и има проблеми със задачата може да му е полезно :)