Софтуерно Инженерство
Loading...
msotiroff avatar msotiroff 136 Точки
Best Answer

Ето - https://pastebin.com/SG1AFWa0
Малко преправих логиката във вътрешния цикъл и работи. Нямаш нужда от HashSet-а. Може просто да броиш редицата и ако е по - дълга от текущата най - дълга да запазиш новата дължина.
Успех!

1
NikolayPopov avatar NikolayPopov 253 Точки

Мерси много, според теб добавянето в HashSet-a ли забавяше нещата?

0
msotiroff avatar msotiroff 136 Точки

Едва ли точно добавянето да е проблема. По - вероянно е съвкупност от многото операции и проверки, които правиш.
На всяка итерация в while-а имаш по един contains и един add. Отделно на всяка итерация на върешния for-цикъл имаш clear(). Отделно повече if-проверки.
Сега си представи, че инпута ти е редицата [1, 2, 3,.........., 2500, 0], резултат ще има на последната итерация на вътрешния for, съответно имаш над 3млн итерации на while със всичките му там проверки, add(), contains()...

1