хеш-функция используется для сопоставления данных со значениями фиксированного размера. Значения, возвращаемые хеш-функцией, называются хэш-значения, хэш-коды, дайджесты или просто хэши. Значения используются для индексации таблицы фиксированного размера, которая называется хэш-таблица. Использование хэш-функции для индексации хеш-таблицы называется хэшированием.
Хеш-функции и связанные с ними хэш-таблицы используются в приложениях для хранения и извлечения данных для доступа к данным за небольшое и почти постоянное время на извлечение, а пространство для хранения лишь незначительно превышает общее пространство, необходимое для самих данных или записей.
Вот 75 лучших вопросов для интервью, которые можно легко решить с помощью Hashing:
- Найти пару с заданной суммой в массиве
- Проверить, существует ли подмассив с суммой 0
- Вывести все подмассивы с суммой 0
- Найти самую длинную подпоследовательность, состоящую из последовательных целых чисел
- Найти дубликаты в заданном диапазоне k в массиве
- Подсчет различных абсолютных значений в отсортированном массиве
- Найти подмассив с заданной суммой в заданном массиве целых чисел
- Найти наибольший подмассив, образованный последовательными целыми числами
- Найти повторяющийся элемент в массиве с ограниченным диапазоном
- Найти подмассив максимальной длины, имеющий равное количество нулей и единиц
- Найти подмассив максимальной длины по заданной сумме
- Найти мажоритарный элемент в массиве (алгоритм голосования Бойера–Мура)
- Сортировать массив на основе другого массива
- Сортировать элементы по частоте и индексу
- Эффективная сортировка массива с большим количеством повторяющихся значений
- Рассчитать частоту всех элементов, присутствующих в массиве заданного диапазона, за линейное время и с использованием постоянного пространства
- Заменить каждый элемент массива соответствующим ему рангом
- Группировать элементы массива по их первому вхождению
- Найти все симметричные пары в массиве пар
- Построить самый длинный палиндром, перетасовав или удалив символы из строки
- Найти количество различных элементов в каждом подмассиве размера k
- Вывести все подмассивы массива, имеющие различные элементы
- Найти минимальный индекс повторяющегося элемента в массиве
- Найти индекс максимального встречающегося элемента с равной вероятностью
- Проверить, образован ли массив последовательными целыми числами
- Найти в массиве две непересекающиеся пары, имеющие одинаковую сумму
- Найти подмассивы с заданной суммой в массиве
- Проблема с тремя разделами
- Найти два нечетных элемента в массиве без использования лишнего пробела
- Найти пары с заданной разностью k в массиве
- Найти лишний элемент в массиве за один проход
- Определить, равны ли два целых числа без использования операций сравнения и арифметических операций
- Задача на 4 суммы | Четверки с заданной суммой
- Найти триплет с заданной суммой в массиве
- Найти количество превосходящих элементов для каждого элемента массива
- Построить бинарное дерево из упорядоченной и ровной последовательности
- Построить бинарное дерево из обходов в прямом и обратном порядке
- Построить бинарное дерево из прямого и прямого обхода
- Клонировать бинарное дерево со случайными указателями
- Эффективно вывести все узлы между двумя заданными уровнями в бинарном дереве
- Найти прямой обход бинарного дерева по его прямому и обратному порядку
- Правая печать бинарного дерева
- Найти обратный обход бинарного дерева по его прямому и прямому порядку
- Итеративно печатать путь от листа к корню для каждого конечного узла в бинарном дереве
- Найти пару с заданной суммой в BST
- Найти максимальную ширину заданного бинарного дерева
- Построить бинарное дерево из заданного родительского массива
- Найти сумму диагоналей заданного бинарного дерева
- Печать диагонального обхода бинарного дерева
- Выполнить вертикальный обход бинарного дерева
- Найти вертикальную сумму в заданном двоичном дереве
- Найти предков данного узла в бинарном дереве
- Печать вида сверху бинарного дерева
- Печать нижнего вида бинарного дерева
- Печать левого вида бинарного дерева
- Вывести все узлы идеального бинарного дерева в определенном порядке
- Обход двоичного дерева в обратном порядке
- Спиральный обход бинарного дерева
- Уровневый обход бинарного дерева
- Построить бинарное дерево из матрицы предков
- Найти вероятность того, что человек выживет, сделав N шагов по острову
- Узлы связи представлены на каждом уровне бинарного дерева в виде связанного списка
- Преобразовать бинарное дерево в двусвязный список по спирали
- Удалить дубликаты из связанного списка за один проход
- Обнаружение цикла в связанном списке (алгоритм обнаружения цикла Флойда)
- Клонирование связанного списка со случайными указателями
- Найти все общие элементы, присутствующие в каждой строке данной матрицы
- Создать список возможных слов из матрицы символов
- Найти общие элементы, присутствующие во всех строках матрицы
- Найти повторяющиеся строки в двоичной матрице
- Найти все слова из данного списка, которые следуют тому же порядку символов, что и заданный шаблон
- Найти все возможные комбинации, заменив заданные цифры символами из соответствующего списка
- Изоморфные струны
- Определить, являются ли две строки анаграммой или нет
- Проверить, есть ли в строке повторяющаяся подпоследовательность