- Данный проект представляет собой примеры реализации классических алгоритмов на языке Java таких как:
- сортировка массива
- backtracking
- бинарный поиск
- динамическое программирование
- жадный алгоритм
- В проекте представлены результаты сравнения различных алгоритмов в зависимости от входных данных.
- Данный проект задокументирован на русском языке с целью большей доступности для русскоязычного пользователя, поскольку носит исключительно образовательную функцию.
- Пузырьковая
- Блочная
- Расческой
- Подсчётом
- Вставками
- Слиянием
- Две реализации быстрой сортировки: 1, 2
- Выбором
- Методом Шелла
Первая строка соответствует отсортированному массиву Вторая строка соответствует массиву отсортированному в обратном порядке Третья строка соответствует массиву случайных чисел
- Получить все возможные комбинации букв для переданного набора цифр. Каждой цифре соответствует набор букв в точности, как кнопочном мобильном телефоне
- Получение уникальных комбинаций чисел из переданного массива
- Получение всех возможных представлений массива после перестановок его элементов
- Получение всех возможных правильных комбинаций открытых-закрытых скобок для заданного числа пар
- Получение всех возможных комбинаций элементов массива с сохранением порядка следования и в неубывающем порядке значений
- Получение комбинаций чисел на отрезке от 1 до заданного числа
- Получение всех уникальных наборов чисел из переданного массива, сумма которых равна заданному числу
- Получение всех возможных разбиений переданной строки на подстроки-палиндромы
- Получение всех возможных комбинаций символов для данной строки с изменением регистра букв
- Поиск всех возможных путей от начального узла до конечного в направленном ациклическом графе
- Получение количества всех возможных уникальных комбинаций из букв переданной буквенной строки
- Поиск переданного слова в матрице символов
- Поиск количества красивых композиций
- Разбиение целочисленного массива на k-подмножеств с равными суммами их значений
- Поиск элемента в повёрнутом массиве, отсортированном в неубывающем порядке
- Поиск первого и последнего индекса заданного элемента в отсортированном массиве
- Поиск первого индекса элемента с заданным значением в отсортированном по возрастанию массиве
- Определение является ли переданное число "идеальным квадратом"
- Поиск k-го наименьшего элемента в матрице, в которой ряды и столбцы отсортированы в возрастающем порядке
- Поиск уникального элемента в отсортированном по возрастанию массиве целых чисел, все остальные элементы которого дублированы
- Поиск пикового элемента в целочисленной матрице
- Определение содержится ли целевой элемент в матрице, ряды которой отсортированы в возрастающем порядке, а первый элемент следующего ряда всегда больше последнего элемента в предыдущем ряду
- Поиск максимальной длины строки, образованной при конкатенации строк из переданного списка и содержащей только уникальные буквы
- Поиск количества "островов" из единиц в бинарной матрице
- Поиск количества "провинций" для заданной матрицы связей "городов"
- Получение численных результатов соотношений двух параметров из строковых запросов
- Сортировка целых чисел в лексикографическом порядке
- Перемещение по целочисленному массиву неотрицательных чисел в соответствии с условиями
- Получение максимальной суммы значений элементов, доступных для первого игрока
- Поиск всех существующих путей выхода объекта за границы поля заданного размера
- Получение индексов столбцов, из которых "выпадает мяч"
- Получение максимальной длины последовательности элементов массива вида: a{i}, a{a{i}}, a{a{a{i}}},...
- Поиск безопасных узлов направленного графа
- Поиск пути с минимальным усилием
- Поиск минимальной длины моста для соединения двух островов
- Подсчёт времени необходимого на оповещение всех сотрудников компании
- Проверка является ли неориентированный граф двудольным
- Поиск узла во взвешенном ненаправленном графе с наименьшим числом достижимых соседних узлов, находящихся на расстоянии не превышающем пороговое
- Поиск минимально возможного времени для обход дерева с целью сбора всех яблок в его узлах и возвращения в вершину
- Поиск возможности прохождения курсов согласно распорядку
- Поиск деревьев с минимальной высотой
- Поиск минимального числа перестановок кодового замка от стартового до получения целевого значения
- Задачи размена суммы монетами заданных номиналов
- Поиск различных комбинаций элементов массива уникальных целых чисел, сумма которых равна целевой
- Получение количества квадратных подматриц, состоящих только из 1, в целочисленной матрице
- Подсчёт минимального числа операций удаления символов из двух исходных строк, чтобы получить эквивалентные строки
- Получение всех возможных калькуляций при различных комбинациях скобок в математическом выражении
- Задачи о максимизации награбленной суммы при обходе домов домушником
- Перемещение по элементам массива от нулевого к последнему в соответствии с условиями
- Получение самого длинного делимого поднабора из целочисленного массива
- Поиск максимальной длины общего подмножества символов двух строк
- Поиск длины самой большой возрастающей последовательности чисел в переданном массиве
- Поиск длины самой большой палиндромической подпоследовательности символов в строке
- Поиск в бинарной символьной матрице максимальной площади квадрата, состоящего только из '1'
- Поиск максимальной длины цепи отрезков
- Поиск максимального по значению произведения элементов среди подмассивов исходного массива
- Подсчёт минимальной стоимости билетов для покрытия всех дней для путешествий
- Получение минимальной суммы падающего пути
- Поиск количества хороших способов разбиения строки
- Получение максимального набора бинарных строк из массива в соответствии с ограничениями на общее количество нулей и единиц
- Определение возможности разбиения переданного массива положительных целых чисел на две части с равными суммами значений элементов
- Определение является ли сумма элементов, доступная первому игроку больше или равной сумме элементов, доступной второму игроку
- Получение количества строк заданной длины, состоящих из гласных отсортированных в лексико-графическом порядке
- Получение целевой суммы различными комбинациями знаков для элементов исходного массива
- Поиск минимальной суммы прохождения от головы до низа треугольного массива
- Поиск минимального числа операций копирований-вставок для получения заданного числа исходного символа
- Поиск n-го уродливого числа
- Поиск количества уникальных путей, которыми робот, двигаясь из верхнего левого угла поля заданного размера, может достичь правого нижнего угла
- Провера валидности скобок
- Получение размера самой длинной качающейся подпоследовательности
- Разбиение целочисленного массива на подмассивы, значение каждого элемента в которых будет равно максимальному значению в данном подмассиве
- Определение максимального времени задержки при прохождении сигнала от заданного узла до всех остальных
- Задачи подсчёта максимальной прибыли от покупки-продажи акций
- Поиск минимальной цены полёта из одного города в другой с ограничением на количество транзитных городов
- Набор нажатий кнопок мобильного телефона путём перемещения по ним шахматного коня
- Определение наибольшего количества очков, которые может дать пара в массиве
- Поиск минимального необходимого числа стрел необходимого, чтобы лопнуть все шары, размещённые один над другим
- Поиск максимальной вместимости среди всех контейнеров
- Преобразование массива целых чисел в наибольшее возможное целое число, путём слияния элементов
- Поиск максимального числа курсов, которые возможно пройти
- Поиск минимальной суммы нелистовых узлов дерева, построенного на основе произведений максимальных значений листьев поддеревьев каждого узла
- Поиск минимального числа интервалов, которые необходимо удалить из intervals, чтобы остались только непересекающиеся