Лайвкодинг
Потренируй написание Java-кода на задачах с числами, коллекциями, деревьями, кешированием и потоками. Сначала предложи алгоритм и реализацию, затем сравни их с решением. Такой формат помогает готовиться к live coding — написанию кода во время интервью.
Задачи
- Алгоритм для высчитывания логарифма заданного числа по заданному основанию
- Рекурсивное вычисление факториала
- Реверс числа без использования строк
- Реализация бинарного дерева
- Проверка симметричности бинарного дерева
- Вычисление глубины дерева
- Дан массив с числами, одно число удалили и перемешали массив. Найти удаленное число.
- Найти общее число в трёх коллекциях, не используя дополнительные структуры
- Является ли число простым
- Найти нужное число в последовательности Фибоначчи
- Вычислить квадратный корень числа, возвращая только целую часть корня.
- Последовательность Фибоначчи
- Пузырьковая сортировка
- Реализовать LRU-кэш
- Проверить правильность скобок «({[]})»
- Two Sum: найти индексы двух чисел с заданной суммой
- Сгруппировать анаграммы (Stream API)
- Producer-consumer на BlockingQueue
- Перевод денег между счетами без дедлока