Здравейте имам проблем с едно от решенията на задача Remove Duplicates. Само за първия Test case ми дава грешка " Time Limit Exceeded" . Има ли начин да преработя кода си, за да се впиша в зададеното време или да търся ново решение на задачата?
Привет, мисля че ето тази операция забавя програмата: disticted = list.stream().distinct().collect(Collectors.toList());
Вместо нея използвай един HashSet - в него може да се добавят само уникални елементи. С един for цикъл добави всеки елемент от колекцията ти, ако се повтаря HashSet-a автоматично няма да ти го приеме. И след това си изпринтирай самия HashSet по стандартния начин.
Благодаря за идеята. Пробвах, но ми изкарва елементите разбъркано:
Изключих, че може да се появи и този момент. Ако искаш може просто един по един да си ги добавяш в друга колекция, с една проверка дали вътре не се съдържа конкретния елемент.
Смятах нещо подобо да пробвам, просто се чудех дали има начин да опитимизирам сегашния код. Благодаря отново
Здравей, може да пробваш да взимаш данните с BufferedReader, за да оптимизираш времете с малко.
Успех!
Благодаря за съвета Вече я пренаписах с for цикли и работи.
Ако ти е интересно ето 2 решения със Stream API, 2то не работи в Judge, защото Judge не поддържа версия 11 от която идва lines()
метода. https://pastebin.com/WwfyTq42
Благодаря Сега ще ги разгледам