Java

Задачи Java: массивы, строки и коллекции10

Начните с вычисления, затем проследите, как задача меняет состояние, которое нужно хранить. Каждая основная задача содержит полное решение на Java, требования к входным данным и обоснование алгоритма.

Массивы и числовые границы

Примените знаки и сопоставьте индексы, прежде чем выбрать int или long. Затем перейдите к последовательности, произведения которой выходят за границы int.

  1. Суммирование значений со знаками в Java с IntStream

    Объединяем абсолютные значения с соответствующими булевыми знаками с помощью IntStream. Проверяем взаимное сокращение, все отрицательные значения, диапазон int и равную длину массивов.

  2. Скалярное произведение массивов в Java: IntStream и границы целых чисел

    Перемножаем соответствующие элементы массивов и суммируем их с IntStream. Разбираем знаки, диапазон int и необходимость расширять тип операндов до переполнения при умножении.

  3. Последовательность с шагом x в Java: расширение типа до умножения

    Создание n значений от x до x*n через IntStream. Почему одного mapToLong недостаточно против переполнения int; положительный, отрицательный и нулевой шаг.

Строки и порядок преобразований

Для названий цифр используйте буквальную замену, сохраняйте порядок нормализации, затем удаляйте соседние пары одинаковых символов с помощью стека.

  1. Преобразование английских названий цифр через String.replace в Java

    Литеральная замена в допустимой смеси цифр и слов от zero до nine. Различия replace и replaceAll, границы целых чисел и область применения.

  2. Новый ID в Java: порядок нормализации и усечение

    Нормализация ID цепочкой Optional и циклом: последовательности точек, пустой результат фильтрации, очистка после усечения, дополнение и независимость от локали.

  3. Удаление соседних одинаковых пар в Java со стеком ArrayDeque

    Удаление соседних одинаковых символов стеком: инвариант префикса, каскадные удаления, граница в миллион символов и затраты времени и памяти.

Подсчёт, состояние и порядок

Отличайте частоты имён от количества разных типов. Затем отслеживайте порядок недавних обращений к кешу и ранжируйте отношения с явным правилом для равных значений.

  1. Поиск участника, не завершившего забег, по частотам имён в Java

    Вычитание частот финишировавших из частот участников через HashMap. Повторяющиеся имена без разности Set и условие ровно одного участника, не завершившего забег.

  2. Java Ponketmon: почему ответ равен min(разные типы, N/2)

    Подсчёт разных типов через HashSet и доказательство достижимости границы выбора. Максимальное число типов и построение конкретной выборки — разные задачи.

  3. LRU-кеш в Java: порядок обращений в LinkedHashMap

    Моделирование LRU через LinkedHashMap с порядком доступа: обновление попаданий, вытеснение, ключи без учёта регистра, нулевая ёмкость и предположения о стоимости.

  4. Сортировка долей неудач в Java: знаменатели, равенства и long

    Подсчёт остановившихся и достигших этапа игроков, точное сравнение перекрёстными произведениями long, недостигнутые этапы и порядок при равных долях.