- JDK 17
- Gradle isn't required because of embedded Gradle used in the project
./gradlew clean build
- annotation
- cache
- collections
- common (some uncategorized stuff)
- core (Java core stuff)
- dynamic
- iterators
- java8
- jvm
- masking
- multithreading
- numeric
- parser
- proxy
- recursion
- refactoring
- search
- serialization
- sorting
- string
- testing
- 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.
Links to videos on YouTube channel (in chronological order)
- Определение максимального количества зрителей стрима
- Корзинная сортировка: подсчет количества людей каждого возраста
- Файловая система: структура данных и подсчет размера содержимого
- Подсчет количества кораблей на поле морского боя
- Сортировка выбором (Selection sort)
- Роняем JVM (2 решения)
- Самодельный Enum (Яндекс)
- Числа Фибоначчи (2 решения)
- Поиск второго по величине элемента массива (2 решения)
- Многопоточный стек
- Нахождение наибольшего общего делителя (2 решения)
- Поиск максимального произведения трех чисел в массиве
- Композитный итератор (Яндекс)
- Пузырьковая сортировка (2 решения) (Bubble sort)
- Бинарное дерево поиска
- Рекурсивный итератор (Яндекс)
- Поиск трех чисел с заданной суммой (2 решения)
- Валидация имени пользователя
- Поиск цикла в связном списке (алгоритм Флойда)
- Реализация cd для абстрактной файловой системы
- LRU кэш (Least Recently Used) (leetcode)
- Обход конем шахматной доски (Horse walk)
- Подсчет строк из InputStream, удовлетворяющих условию
- Поиск уникальных элементов в коллекции
- Изменение формата страхового номера при помощи регулярных выражений
- Определение бита в бесконечной последовательности
- Запуск параллельного выполнения нескольких задач (3 решения)
- Четный итератор
- Задачи с палиндромами
- Расстановка ферзей на шахматной доске (N-Queens) (leetcode)
- Печать foobar из разных потоков
- Проверка симметричности матрицы
- Расчет давления в кирпичной пирамиде с помощью рекурсии
- Поиск подмножества с максимальной четной суммой за O(n)
- Обход бинарного дерева (4 способа) (Binary tree walk)
- Разворот односвязного списка (3 способа) (Reverse linked list)
- Самодельная аннотация
- Самодельный Atomic
- Поиск простых делителей числа (Simple dividers)
- Сортировка вставками (Insertion sort)
- Подсчет количества съеденных конфет
- Составление поезда из вагонов
- Очередь в прачечную
- Реализация целочисленного деления (2 решения)
- Ревью кода из интервью
- Ханойские башни (Hanoi towers)
- Быстрая сортировка (Quick sort)
- Генерация перестановок (leetcode)
- Интерполяционный поиск в упорядоченном массиве
- Птицеферма (с элементами ООП)
- Определение более длинного конца цепи
- Прыжки по разрушающимся платформам
- Сортировка квадратов упорядоченного массива (3 способа) (leetcode)
- Поиск пары непересекающихся отрезков
- Определение сплошных интервалов для числового массива
- Поиск в массиве пары чисел с заданной суммой за O(n)
- Поиск k максимальных чисел в массиве за O(kn)
- Поиск пропущенного минимального положительного элемента в несортированном массиве за O(n)
- Два секретных Git-репозитория, посвященных Java-интервью
- Сократитель ссылок (Яндекс)
- Определение минимального произведения пары элементов несортированного массива за O(n)
- Возведение числа в степень (2 способа) (leetcode)
- Сортировка анаграмм
- Создаем deadlock
- Замена последовательных пробелов в строке одним за O(n)
- Как собрать Java-проект без JDK, Maven и Gradle
- Сортировка слиянием (Merge sort)
- Стек с поддержкой определения минимального элемента за O(1)
- Рефакторинг кода из интервью
- Кодирование строки
- Реверсирование последовательности (3 способа)
- Программист в кино в эпоху COVID
- LFU кэш (Least Frequently Used) (leetcode)
- Поиск элементов одного массива, отсутствующих в другом за O(n)
- Киномарафон
- Самодельный Stream с filter и map операциями
- Брутфорс пароля по хэшу и хэш-функции (Ozon)
- Упаковка товаров для доставки
- Самодельный Stream (часть 2): of, limit, skip, takeWhile, dropWhile, distinct, sorted, forEach и т.д
- Определение оптимального времени покупки и продажи акций (2 решения) (leetcode)
- Разбиение здания на апартаменты (Workfusion)
- Самодельный BlockingQueue (2 решения)
- Самодельный ThreadPoolExecutor
- Восстановление IP-адреса (leetcode)
- Определение лучшего среднего значения в массиве оценок (2 решения)
- Создание объекта по типу, указанному как generic (2 решения)
- Порядок инициализации полей и блоков Java-класса
- Самодельный LinkedList
- Самодельный ArrayList
- Самодельный HashMap
- Три задачи из интервью на парсинг файлов
- Робот двуногий шагающий (Яндекс)
- Самодельный HashSet
- Самодельный LinkedHashSet
- Неизменяемая нода и сумма ее вложенных элементов (3 способа)
- Топологическая сортировка. Нахождение цикла в графе
- Удаление N-го элемента с конца односвязного списка (leetcode)
- Самодельный Lock
- Печать строк в заданном порядке из разных потоков (leetcode)
- Многопоточное получение H₂O из водорода и кислорода (leetcode)
- Удаление элемента заданной величины из массива (leetcode)
- ДВЕ задачи про ДВЕри
- Добавление многопоточности при параллельных запросах в разные системы
- Распространение чумы между городами (2 решения)
- Реверсирование порядка цифр в числе (2 решения)
- Поиск среди пар чисел значения, встречающегося однажды: магия XOR (2 решения) (leetcode)
- Удаление дубликатов в сортированном связном списке (2 задачи) (leetcode)
- Генерация валидных комбинаций скобок (leetcode)
- Валидация записи числа регулярным выражением (leetcode)
- Проверка, является ли число степенью заданного числа (2 решения) (leetcode)
- Прокрутка односвязного списка (leetcode)
- Поиск подстроки в строке за O(N+M): алгоритм Бойера-Мура (2 решения) (leetcode)
- Задачи из интервью на написание SQL-запросов
- Поиск слова в матрице букв (leetcode)
- Сжатие строки (Яндекс)
- Самодельный Stack
- Выдача купюр банкоматом (Яндекс)
- Поиск набора слов в матрице букв (2 решения) (leetcode)
- Поиск набора слов в матрице букв (часть 2): префиксное дерево (leetcode)
- Поиск в строке наиболее длинной подстроки без повторений (leetcode)
- Сумма двух чисел без использования + и - (2 решения) (leetcode)
- Длина последнего слова в строке (3 решения) (leetcode)
- Парсинг списка строк в структуру данных (Яндекс)
- Перемещение нулей к концу массива (leetcode)
- Проверка правильности использования заглавных букв (2 решения) (leetcode)
- Цифровой корень (итеративная сумма цифр) числа (2 решения) (leetcode)
- Удаление дубликатов из сортированного массива, ч.I, II (leetcode)
- Определение размера окрестности для элементов массива чисел
- Сортировка Шелла (Shell sort)
- Размен минимальным количеством монет (2 решения)
- Замена всех '?' в строке, избегая повторяющихся последовательных символов (leetcode)
- Заказ фурнитуры: добавить пропущенный код
- Поиск в сортированном массиве количества элементов меньших заданного (3 решения)
- Факториал (4 решения)
- Вычисление среднего, медианы, моды, квартилей
- Обзор содержимого моих GitHub репозиториев
- Перемешивание массива: алгоритм тасования Фишера-Йетса
- Валидация скобочного выражения
- Объединение упорядоченных массивов в массив без дубликатов
- Каверзный finally / Каверзный stream: предсказать, что произойдет
- Как успеть посмотреть все обучающие ролики на YouTube (Ускорение выше 2х)
- Генерация CV в PDF из Markdown и автоматизация взаимодействия с рекрутером
- Перестановка пары цифр числа для получения максимального значения (leetcode)
- Бинарный поиск в упорядоченном массиве
- Поиск первой и последней позиции элемента в упорядоченном массиве (leetcode)
- Подсчет отрицательных чисел в сортированной матрице за O(N+M) (2 решения) (leetcode)
- Избавление от дублирования в тестах посредством перехода к параметризованным тестам
- Поиск пропущенных чисел в массиве без использования дополнительной памяти
- Поиск следующей ноды для заданной ноды бинарного дерева поиска
The docs folder contains some docs & notes