- JDK 21
- Gradle (embedded in the project)
./gradlew clean build
- annotation
- cache
- collections
- common (some uncategorized stuff)
- core
- dynamic
- iterators
- jvm
- multithreading
- numeric
- parser
- proxy
- recursion
- refactoring
- search
- serialization
- sorting
- stream
- string
- tree
Sure, we have tests; they contain some 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. We can perceive materials in this folder as project backlog or "box with other stuff"
Videos on YouTube channel (in chronological order)
Expand me
Название | 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 |
Рефакторинг кода из интервью 1 | 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 | - |
Реверсирование порядка цифр в числе (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 | 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 | - |
Прохождение теста подтверждения практического навыка "средний" по 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 |
Редакционное расстояние. Получение одной строки из другой за одно изменение 2 | Youtube | Code |
Обзор плейлистов на канале | Youtube | - |
AI чат с помощью Spring AI и Ollama | Youtube | Repo |
7 классических задач (музыкальный выпуск) | Youtube | - |
Решение дифф. уравнений в ЧП на Java численно | Youtube | Repo |
5 сортировок (музыкальный выпуск) | Youtube | - |
Матрица смежности. Распространение заражения между городами 2 | Youtube | Code |
Сборка и запуск Java-проекта без помощи IDE и средств сборки | Youtube | - |