Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (6)
  • Java Memory limit exceeded на олимпиадном программировании?

    @StainlessDespair
    В первом способе слишком много абстракций. Когда речь заходит о критической экономии памяти нужно сразу забывать про существовании Stream API, стараться не использовать autoboxing и пытаться эффективней использовать ресурсы. На то они и олимпиадные задачки, чтобы писать все сортировки руками вместо однострочных стримов и пр.

    Что можно сделать:
    • закрывать сканер после чтения (не закрыв он так и будет висеть у тебя в памяти, которой может не хватить допустим в середине алгоритма)
    • открывать writer в самом конце (тоже самое что и со сканером, тем более что он тебе абсолютно не нужен в начале выполнения)
    • заменить мапу на массив, убрать использование объекта Integer (со списком тоже желательно, но боттлнек твоего первого способа именно её использование, поэтому если заменишь правильно не сломав логику, то должно хватить.)
    • не использовать стримы


    По поводу подсчёта памяти сервером скорее всего просто запускают виртуалку с -Xmx16m параметром и реагируют на OutOfMemoryError, но это не точно.

    ps Ты не можешь сравнивать Integer таким образом a.getValue() != b.getValue(). Integer суть объект, нужно использовать equals. А ещё в задании сказано разделять числа в output пробелами, а не переходами на новую строку, но это так, к слову.
    Ответ написан
    2 комментария
  • Как научиться использовать докер?

    @StainlessDespair
    Всё, конечно, зависит от того уровня, на который ты докер хочешь изучить, но официального Get Started более чем хватит для базового понимания и использования. https://docs.docker.com/get-started/ Там ты и образ соберёшь, и контейнер поднимаешь и даже запушишь всё в ремоут. Продвинутые вещи можно найти там же, если потребуется, но особо заморачиваться с этим не советую. Если знаешь, что с этим не придётся много работать или будешь работать с базовыми командами, то лишь время потратишь. Как правило для типовых задач (по типу поднятия wordpress) уже есть готовые гайды, после прочтения get started рекомендую обращаться к ним, но уже с пониманием дела.
    Ответ написан
    Комментировать
  • Как написать регулярное выражение ищущее подобные структуры в тексте?

    @StainlessDespair
    Не зная прикладного применения твоей задачи сказать делаешь ли ты велосипед сложно, но вообще можно в две регулярки (на примере последнего варианта): \[(rows)(.+)\] и (\w+)="(.+?)". Первой находишь структуры. Группа один - используемый токен, группа два - все атрибуты. Парсишь вторую группу второй регуляркой чтобы достать атрибуты со значением. Дальше уже дело техники.
    Ответ написан
    Комментировать
  • Как сделать правильный выбор между C# и Java?

    @StainlessDespair
    Изучение двух языков одновременно в принципе возможно. Но если ты нацелен на работу, то забудь про это, так как знание синтаксиса языка мало что тебе даст. Нужно изучать технологии. И у java, и у c# есть начальный стек который рекомендуется знать для уровн, джуна. Хороший уровень их знания увеличивает шансы получить оффер (впрочем не сильно).
    Отвечая на конкретные вопросы, изучая с# потеряешь все то что дает jvm, изучая java потеряешь возможность делать нативные приложения из коробки. Если сложно сделать выбор, взгляни в сторону мобильной разработки (читай kotlin). Там энтерпрайз не такой кровавый и все в плане выбора однозначней.
    Ответ написан
    Комментировать