Moving target
Здравейте,
получавам 90 точки на задача Moving target от изминали изпитни: https://judge.softuni.org/Contests/Practice/Index/2305#2.
С примерите ми работи и получавам точните отговори. Идеи къде бъркам?
Здравейте,
получавам 90 точки на задача Moving target от изминали изпитни: https://judge.softuni.org/Contests/Practice/Index/2305#2.
С примерите ми работи и получавам точните отговори. Идеи къде бъркам?
Има идентични проблеми с "Shoot" и "Strike" командите - премахват се елементи по техните стойности, а не според индексите им, което няма да работи, ако има елементи с еднакви стойности в листа.
Ред №27:
// list.remove(list.get(index)); // грешно - премахва първия елемент от list,чиято стойност е равна на тази, сочена от index
list.remove(index); // правилно - премахва се директно елемента на позиция index
По подобен начин е разписана и логиката в "Strike"
// list.removeAll(list.subList(index - radius, index + radius + 1)); // грешно - премахва всички елементи от list, чиито стойности се срещат между двата индекса
list.subList(index - radius, index + radius + 1).clear(); // правилно - премахва елементите от листа, които са между двата индекса
Не мога добре да разбера логиката на removeAll - премахва по зададена стойност ли?
Ако не ви представлява проблем може ли да ми дадете пример?
С примерите от задачата си работи, както трябва да бъде.
List#removeAll(Collection<?> c) - Removes from this list all of its elements that are contained in the specified collection (optional operation).
Ако имаме лист { 3, 4,
5, 3, 4,6 } и подадем команда "Strike 3 1" от листа ще остане само { 6 }, защото първите 2 елемента съвпадат по стойности с елементи, които се премахват.Разбрах, благодаря за разяснението