- JDK 21
- Gradle (embedded in the project)
./gradlew clean build- annotation
- cache
- collections
- common (some uncategorized stuff)
- core (Java core stuff)
- dynamic
- iterators
- jvm
- multithreading
- numeric
- parser
- proxy
- recursion
- refactoring
- search
- serialization
- sorting
- stream
- string
- tree
Sure, we have tests; they contain enough code which describes implementation in a natural way.
SQL folder contains tasks which require writing SQL queries to solve them. Check appropriate video on Youtube
The interview-materials folder contains some notes about interview preparation and useful links.
Videos on YouTube channel (in chronological order)
| Название | Youtube | Code |
|---|---|---|
| Определение максимального количества зрителей стрима | Youtube | Code |
| Подсчет количества людей каждого возраста (корзинная сортировка) | Youtube | Code |
| Файловая система: структура данных и подсчет размера содержимого | Youtube | Code |
| Подсчет количества кораблей на поле морского боя | Youtube | Code |
| Сортировка выбором (Selection sort) | Youtube | Code |
| Роняем JVM (2 решения) | Youtube | Code |
| Самодельный Enum (Яндекс) | Youtube | Code |
| Числа Фибоначчи (2 решения) | Youtube | Code |
| Поиск второго по величине элемента массива (2 решения) | Youtube | Code |
| Многопоточный стек | Youtube | Code |
| Нахождение наибольшего общего делителя (2 решения) | Youtube | Code |
| Поиск максимального произведения трех чисел в массиве | Youtube | Code |
| Композитный итератор (Яндекс) | Youtube | Code |
| Пузырьковая сортировка (2 решения) (Bubble sort) | Youtube | Code |
| Бинарное дерево поиска | Youtube | Code |
| Рекурсивный итератор (Яндекс) | Youtube | Code |
| Поиск трех чисел с заданной суммой (2 решения) | Youtube | Code |
| Валидация имени пользователя | Youtube | - |
| Поиск цикла в связном списке (алгоритм Флойда) | Youtube | Code |
| Реализация cd для абстрактной файловой системы | Youtube | Code |
| LRU кэш (Least Recently Used) (leetcode) | Youtube | Code |
| Обход конем шахматной доски (Horse walk) | Youtube | Code |
| Подсчет строк из InputStream, удовлетворяющих условию | Youtube | Code |
| Поиск уникальных элементов в коллекции | Youtube | - |
| Изменение формата страхового номера при помощи регулярных выражений | Youtube | Code |
| Определение бита в бесконечной последовательности | Youtube | Code |
| Запуск параллельного выполнения нескольких задач (3 решения) | Youtube | Code |
| Четный итератор | Youtube | Code |
| Задачи с палиндромами | Youtube | Code |
| Расстановка ферзей на шахматной доске (N-Queens) (leetcode) | Youtube | Code |
| Печать foobar из разных потоков | Youtube | Code |
| Проверка симметричности матрицы | Youtube | Code |
| Расчет давления в кирпичной пирамиде с помощью рекурсии | Youtube | Code |
| Поиск подмножества с максимальной четной суммой за O(n) | Youtube | Code |
| Обход бинарного дерева (4 способа) (Binary tree walk) | Youtube | Code |
| Разворот односвязного списка (3 способа) (Reverse linked list) | Youtube | Code |
| Самодельная аннотация | Youtube | Code |
| Самодельный Atomic | Youtube | Code |
| Поиск простых делителей числа (Prime dividers of number) | Youtube | Code |
| Сортировка вставками (Insertion sort) | Youtube | Code |
| Подсчет количества съеденных конфет | Youtube | Code |
| Составление поезда из вагонов | Youtube | Code |
| Очередь в прачечную | Youtube | Code |
| Реализация целочисленного деления (2 решения) | Youtube | Code |
| Ревью кода из интервью 1 | Youtube | - |
| Ханойские башни (Hanoi towers) | Youtube | Code |
| Быстрая сортировка (Quick sort) | Youtube | Code |
| Генерация перестановок (leetcode) | Youtube | Code |
| Интерполяционный поиск в упорядоченном массиве | Youtube | Code |
| Птицеферма (с элементами ООП) | Youtube | Code |
| Определение более длинного конца цепи | Youtube | - |
| Прыжки по разрушающимся платформам | Youtube | - |
| Сортировка квадратов упорядоченного массива (3 способа) (leetcode) | Youtube | Code |
| Поиск пары непересекающихся отрезков | Youtube | Code |
| Определение непрерывных интервалов для числового массива | Youtube | Code |
| Поиск в массиве пары чисел с заданной суммой за O(n) | Youtube | Code |
| Поиск k максимальных чисел в массиве за O(kn) | Youtube | Code |
| Поиск пропущенного минимального положительного элемента в несортированном массиве за O(n) | Youtube | Code |
| Два секретных Git-репозитория, посвященных Java-интервью | Youtube | Repo Repo2 |
| Сократитель ссылок (Яндекс) | Youtube | Code |
| Определение минимального произведения пары элементов несортированного массива за O(n) | Youtube | Code |
| Возведение числа в степень (2 способа) (leetcode) | Youtube | Code |
| Сортировка анаграмм | Youtube | Code |
| Создаем deadlock | Youtube | Code |
| Замена последовательных пробелов в строке одним за O(n) | Youtube | Code |
| Как собрать Java-проект без JDK, Maven и Gradle | Youtube | Repo |
| Сортировка слиянием (Merge sort) | Youtube | Code |
| Стек с поддержкой определения минимального элемента за O(1) | Youtube | Code |
| Рефакторинг кода из интервью | Youtube | Code |
| Кодирование строки | Youtube | Code |
| Реверсирование последовательности (3 способа) | Youtube | Code |
| Программист в кино в эпоху COVID | Youtube | Code |
| LFU кэш (Least Frequently Used) (leetcode) | Youtube | Code |
| Поиск элементов одного массива, отсутствующих в другом за O(n) | Youtube | Code |
| Киномарафон | Youtube | Code |
| Самодельный Stream с filter и map операциями | Youtube | Code |
| Брутфорс пароля по хэшу и хэш-функции (Ozon) | Youtube | Code |
| Упаковка товаров для доставки | Youtube | - |
| Самодельный Stream 2: of, limit, skip, takeWhile, dropWhile, distinct, sorted, forEach, toList | Youtube | Code |
| Определение оптимального времени покупки и продажи акций (2 решения) (leetcode) | Youtube | Code |
| Разбиение здания на апартаменты | Youtube | Code |
| Самодельный BlockingQueue (2 решения) | Youtube | Code |
| Самодельный ThreadPoolExecutor | Youtube | Code |
| Восстановление IP-адреса (leetcode) | Youtube | Code |
| Определение лучшего среднего значения в массиве оценок (2 решения) | Youtube | Code |
| Создание объекта по типу, указанному как generic (2 решения) | Youtube | Code |
| Порядок инициализации полей и блоков Java-класса | Youtube | Code |
| Самодельный LinkedList | Youtube | Code |
| Самодельный ArrayList | Youtube | Code |
| Самодельный HashMap | Youtube | Code |
| Три задачи из интервью на парсинг файлов | Youtube | Code |
| Робот двуногий шагающий (Яндекс) | Youtube | Code |
| Самодельный HashSet | Youtube | Code |
| Самодельный LinkedHashSet | Youtube | Code |
| Неизменяемая нода и сумма ее вложенных элементов (3 способа) | Youtube | Code |
| Топологическая сортировка. Нахождение цикла в графе | Youtube | Code |
| Удаление N-го элемента с конца односвязного списка (leetcode) | Youtube | Code |
| Самодельный Lock | Youtube | Code |
| Печать строк в заданном порядке из разных потоков (leetcode) | Youtube | Code |
| Многопоточное получение H₂O из водорода и кислорода (leetcode) | Youtube | Code |
| Удаление элемента заданной величины из массива (leetcode) | Youtube | Code |
| ДВЕ задачи про ДВЕри | Youtube | Code Code2 |
| Добавление многопоточности при параллельных запросах в разные системы | Youtube | Code |
| Распространение чумы между городами (2 решения) | Youtube | Code |
| Реверсирование порядка цифр в числе (2 решения) | Youtube | Code |
| Поиск среди пар чисел значения, встречающегося однажды: магия XOR (2 решения) (leetcode) | Youtube | Code |
| Удаление дубликатов в сортированном связном списке ч.I,II (leetcode) | Youtube | Code Code2 |
| Генерация валидных комбинаций скобок (leetcode) | Youtube | Code |
| Валидация записи числа регулярным выражением (leetcode) | Youtube | Code |
| Проверка, является ли число степенью заданного числа (2 решения) (leetcode) | Youtube | Code |
| Прокрутка односвязного списка (leetcode) | Youtube | Code |
| Поиск подстроки в строке за O(N+M): алгоритм Бойера-Мура (2 решения) (leetcode) | Youtube | Code Code2 |
| Задачи из интервью на написание SQL-запросов | Youtube | Code |
| Поиск слова в матрице букв (leetcode) | Youtube | Code |
| Сжатие строки (Яндекс) | Youtube | Code |
| Самодельный Stack | Youtube | Code |
| Выдача купюр банкоматом (Яндекс) | Youtube | - |
| Поиск набора слов в матрице букв (2 решения) (leetcode) | Youtube | Code Code2 |
| Поиск набора слов в матрице букв 2: префиксное дерево (leetcode) | Youtube | Code |
| Поиск в строке наиболее длинной подстроки без повторений (leetcode) | Youtube | Code |
| Сумма двух чисел без использования + и - (2 решения) (leetcode) | Youtube | Code |
| Длина последнего слова в строке (3 решения) (leetcode) | Youtube | Code |
| Парсинг списка строк в структуру данных (Яндекс) | Youtube | Code |
| Перемещение нулей к концу массива (leetcode) | Youtube | Code |
| Проверка правильности использования заглавных букв (2 решения) (leetcode) | Youtube | Code |
| Цифровой корень (итеративная сумма цифр) числа (2 решения) (leetcode) | Youtube | Code |
| Удаление дубликатов из сортированного массива, ч.I, II (leetcode) | Youtube | Code Code2 |
| Определение размера окрестности для элементов массива чисел | Youtube | Code |
| Сортировка Шелла (Shell sort) | Youtube | Code |
| Размен минимальным количеством монет (2 решения) | Youtube | Code |
| Замена всех '?' в строке, избегая повторяющихся последовательных символов (leetcode) | Youtube | Code |
| Заказ фурнитуры: добавить пропущенный код | Youtube | Code |
| Поиск в сортированном массиве количества элементов меньших заданного (3 решения) | Youtube | Code |
| Факториал (4 решения) | Youtube | Code |
| Вычисление среднего, медианы, моды, квартилей | Youtube | Code |
| Обзор содержимого моих GitHub репозиториев | Youtube | GitHub |
| Перемешивание массива: алгоритм тасования Фишера-Йетса | Youtube | Code |
| Валидация скобочного выражения (leetcode) | Youtube | Code |
| Объединение упорядоченных массивов в массив без дубликатов | Youtube | Code |
| Каверзный finally / Каверзный stream: предсказать, что произойдет | Youtube | Code Code2 |
| Как успеть посмотреть все обучающие ролики на YouTube (Ускорение выше 2х) | Youtube | - |
| Генерация CV в PDF из Markdown и автоматизация взаимодействия с рекрутером | Youtube | CV repo |
| Перестановка пары цифр числа для получения максимального значения (leetcode) | Youtube | Code |
| Бинарный поиск в упорядоченном массиве | Youtube | Code |
| Поиск первой и последней позиции элемента в упорядоченном массиве (leetcode) | Youtube | Code |
| Подсчет отрицательных чисел в сортированной матрице за O(N+M) (2 решения) (leetcode) | Youtube | Code |
| Избавление от дублирования в тестах посредством перехода к параметризованным тестам | Youtube | Code |
| Поиск пропущенных чисел в массиве без использования дополнительной памяти | Youtube | Code |
| Поиск следующей ноды для заданной ноды бинарного дерева поиска | Youtube | Code |
| Ревью кода из интервью 2 | Youtube | - |
| Задачи на логику из BA-интервью | Youtube | - |
| Ревью кода из интервью 3 | Youtube | - |
| Поиск позиций больших групп в строке (leetcode) | Youtube | Code |
| Подсчет способов подъема по лестнице (leetcode) | Youtube | Code |
| Преобразование римской записи числа в арабскую (leetcode) | Youtube | Code |
| Преобразование арабской записи числа в римскую (leetcode) | Youtube | Code |
| Поиск анаграммы (2 решения) (leetcode) | Youtube | Code |
| Поиск наиболее длинного слова из словаря, которое можно сложить из заданного набора символов | Youtube | Code |
| Определение простых делителей, меньших заданного числа. Решето Эратосфена (4 решения) | Youtube | Code |
| Поиск для заданного элемента массива k соседних элементов, ближайших к нему по величине (Яндекс) | Youtube | Code |
| Поиск максимальной суммы двух элементов в неупорядоченном списке за O(n) | Youtube | Code |
| Инкремент большого целого, представленного в виде массива цифр (leetcode) | Youtube | Code |
| Определение года с максимальным количеством живущих людей (2 решения) | Youtube | Code |
| Обращение строки символов | Youtube | Code |
| Вывод уникальных значений для коллекции двойной вложенности (2 решения) | Youtube | Code |
| Паспортный контроль (2 решения) | Youtube | Code |
| Вращение матрицы (hackerrank) | Youtube | Code |
| Подсчет единиц в бинарной записи числа (leetcode) | Youtube | Code |
| Ревью кода из интервью 4 (LIVE) | Youtube | - |
| Ревью кода из интервью 5 (LIVE) | Youtube | - |
| Проверка возможности получения одной строки из другой за одно изменение | Youtube | Code |
| Проверка наличия дубликатов в несортированном массиве (2 решения) | Youtube | Code |
| Самодельные equals() и hashCode() | Youtube | Code Code2 |
| LFU кэш 2 (Least Frequently Used) (leetcode) | Youtube | Code |
| Слияние k упорядоченных массивов быстрее, чем за kN*log(kN) | Youtube | Code |
| Водительский экзамен | Youtube | - |
| Рефакторинг Spring Boot сервиса из тестового задания | Youtube | Repo |
| Ревью кода из интервью 6 (LIVE) | Youtube | - |
| Поиск маршрута спуска золотоискателя с горы | Youtube | Code |
| Счастливое число (2 решения) (leetcode) | Youtube | Code |
| Spring Boot приложение с использованием PostgreSQL JSONB | Youtube | Repo |
| Настройка Win OS для разработки на Java | Youtube | Repo |
| Realtime анализатор спектра звука на Java | Youtube | Repo |
| Как найти утерянный коммит: Git reflog | Youtube | - |
| Функциональные тесты REST API с помощью Spock | Youtube | - |
| Вавилонский метод вычисления квадратного корня (leetcode) | Youtube | Code |
| Определение высоты бинарного дерева | Youtube | Code |
| Dummy, Fake, Stub, Spy, Mock | Youtube | - |
| Нагрузочное тестирование Spring Boot сервиса с помощью Gatling | Youtube | Repo |
| Отражение бинарного дерева | Youtube | Code |
| Web crawler (парсер сайта) на Java | Youtube | Repo |
| Как скачать видео с Boosty | Youtube | Boosty |
| Прохождение теста подтверждения практического навыка "средний" по Java на hh.ru | Youtube | - |
| Декодирование шифра Цезаря | Youtube | Code |
| Прохождение теста подтверждения практического навыка "продвинутый" по Java на hh.ru | Youtube | - |
| Поиск НОК для набора чисел | Youtube | Code |
| Число Фробениуса и задача Чикена МакНаггетса | Youtube | Code |
| Java interview Q & A collection | Youtube | Repo |
| Выдача купюр банкоматом 2 (Яндекс) | Youtube | Code Code2 |
| Поиск эквивалентных вершин бинарного дерева с макс. размером поддеревьев | Youtube | Code |
| Как выпустить релиз на GitHub | Youtube | Repo |