Хеширование - очень важная концепция в структуре данных, поскольку хеширование может значительно снизить временную сложность нескольких сложных проблем. Это связано с тем, что в среднем случае элемент может быть извлечен из хеш-таблицы за постоянное время.
Мы рекомендуем ознакомиться со следующими структурами данных, прежде чем переходить к описанным ниже проблемам хеширования.
std::set
,std::map
,std::unordered_set
,std::unordered_map
in C++HashMap
,HashSet
,TreeMap
в JavaDictionary
,Set
в Python
- Найти пару с заданной суммой в массиве
- Проверить, существует ли подмассив с нулевой суммой
- Вывести все подмассивы с нулевой суммой
- Найти подмассив максимальной длины с заданной суммой
- Найти подмассив максимальной длины, в котором равное количество нулей и единиц
- Найти самый большой подмассив, образованный последовательными целыми числами
- Найти элемент большинства (алгоритм голосования большинством Бойера – Мура)
- Найти подмассив с заданной суммой в целочисленном массиве
- Найти тройку с заданной суммой в массиве
- Найти длину самой длинной непрерывной последовательности с одинаковой суммой в заданных двоичных массивах
- Найти пары с разницей` k` в массиве
- Задача с 4 суммой | Четверки с заданной суммой
- Группировать элементы массива по первому вхождению
- Найти все симметричные пары в массиве пар
- Найти количество различных элементов в каждом подмассиве размера` k`
- Вывести все подмассивы массива, содержащие отдельные элементы
- Найти минимальный индекс повторяющегося элемента в массиве
- Найти индекс максимального встречающегося элемента с равной вероятностью
- Проверить, образован ли массив последовательными целыми числами
- Найти две неперекрывающиеся пары, имеющие одинаковую сумму в массиве
- Подсчитать различные абсолютные значения в отсортированном массиве
- Найти подмассивы с заданной суммой в массиве
- Эффективно рассчитать частоту всех элементов, присутствующих в массиве с ограниченным диапазоном
- Перемешать массив согласно заданному порядку элементов
- Найти дубликаты в диапазоне` k` в массиве
- Найти самую длинную подпоследовательность, состоящую из следующих друг за другом целых чисел
- Определить, можно ли разбить массив на пары с суммой, кратной` k`
- Сортировать элементы по частоте и индексу
- Сортировать массив в порядке, определенном другим массивом
- Эффективно отсортируйте массив с множеством повторяющихся значений
- Найти количество превосходящих для каждого элемента массива
- Найти все общие элементы, присутствующие в каждой строке матрицы
- Найти общие элементы, присутствующие во всех строках матрицы
- Проверить, присутствует ли в строке повторяющаяся подпоследовательность
- Определить, являются ли две строки анаграммой или нет
- Изоморфные струны
- Найти все возможные комбинации, заменив заданные цифры на символы из соответствующего списка
- Найти все слова из данного списка, которые следуют в том же порядке символов, что и заданный образец
- Группировать анаграммы из списка слов
- Найти минимум операций, необходимых для преобразования строки в другую
- Найти самую длинную подстроку строки, содержащей` k` различных символов
- Найти все палиндромные перестановки строки
- Найти все подстроки строки, являющиеся перестановкой другой строки
- Построить самый длинный палиндром путем перемешивания или удаления символов из строки
- Найти первый неповторяющийся символ в строке, сделав только один обход
- Найти все подстроки, содержащие ровно` k` различных символов
- Определить, соответствует ли строка заданному шаблону
- Найти нечетно встречающийся элемент в массиве за один обход
- Найти два нечетно встречающихся элемента в массиве, не используя лишнего места
- Найти повторяющийся элемент в массиве с ограниченным диапазоном
- Найти два повторяющихся элемента в массиве с ограниченным диапазоном (с помощью XOR)
- Распечатать вид двоичного дерева снизу
- Распечатать вид двоичного дерева сверху
- Найти предков данного узла в двоичном дереве
- Найти диагональную сумму двоичного дерева
- Итеративно распечатать путь от листа к корню для каждого листового узла в двоичном дереве
- Построить бинарное дерево из родительского массива
- Построить бинарное дерево из обхода по порядку и по предзаказу
- Построить двоичное дерево из обходов inorder и postorder
- Построить двоичное дерево по порядку и порядку уровней
- Построить полное двоичное дерево из последовательности предпорядка и поступорядочения
- Найти обход двоичного дерева по порядку и по порядку следования двоичного дерева
- Найти предварительный обход двоичного дерева по его порядку и послепорядку
- Клонировать двоичное дерево со случайными указателями
- Построить бинарное дерево из матрицы предков
- Найти пару с заданной суммой в BST
- Найти частоту каждого элемента в отсортированном массиве, содержащем дубликаты
- Найти пары с разностью` k` в массиве | Постоянное космическое решение
- 3 – проблема раздела
- Найти вероятность того, что человек останется жив после того, как совершит n шагов по острову
- Найти всех сотрудников, которые прямо или косвенно подчиняются руководителю
- Найти правильный порядок алфавитов в данном словаре древнего происхождения
- Задача раскраски графа
- Найти маршрут из приведенного списка аэропортов вылета и прилета
- Найти первые` k` неповторяющихся символов в строке за один проход
- Заменить каждый элемент массива на его соответствующий ранг
- Определить цикл в связанном списке (алгоритм определения цикла Флойда)
- Удалить дубликаты из связанного списка за один проход
- Клонировать связанный список со случайными указателями
- Узлы ссылок присутствуют на каждом уровне двоичного дерева в виде связанного списка
- Найти точку пересечения двух связанных списков
- Найдите вертикальную сумму двоичного дерева
- Найдите числа в виде суммы двух кубиков для двух разных пар
- Определить, равны ли два целых числа без использования операторов сравнения и арифметических операций
- Эффективно распечатайте все узлы между двумя заданными уровнями в двоичном дереве
- Обход бинарного дерева в порядке уровней
- Обход бинарного дерева по спирали
- Обратный обход бинарного дерева по порядку уровней
- Вывести все узлы идеального двоичного дерева в определенном порядке
- Распечатать левое изображение двоичного дерева
- Печать диагонального обхода двоичного дерева
- Преобразование двоичного дерева в двусвязный список по спирали
- Выполнить вертикальный обход бинарного дерева
- Вычислить максимальное количество узлов на любом уровне в двоичном дереве
- Распечатать правое изображение двоичного дерева
- Реализация Trie с эффективным использованием памяти в C ++ - вставка, поиск и удаление
- Найти повторяющиеся строки в двоичной матрице
- Сгенерируйте список возможных слов из символьной матрицы
Спасибо за чтение.