Публикации по теме 'datastrucutre'
Все о стеке
Вы когда-нибудь замечали количество тарелок, сложенных в ресторане?…
Вы когда-нибудь наблюдали, как расположены эти кучи?
Если да, вам будет легче понять, что такое стек.
Определение стека выглядит следующим образом:
Стек — это линейная структура данных, в которой элементы вставляются или удаляются только по одному.
В сценарии с кучкой обеденных тарелок в ресторане, если человек хочет оставить новую тарелку, ему нужно держать ее над самой верхней тарелкой, или он хочет убрать..
Самая длинная возрастающая подпоследовательность O (nlogn)
Задача самой длинной возрастающей подпоследовательности (LIS) состоит в том, чтобы найти длину самой длинной подпоследовательности данной последовательности, чтобы все элементы подпоследовательности были отсортированы в порядке возрастания.
Например, длина LIS для {10, 12, 9, 13, 21, 50, 41, 65, 85} равна 7, а LIS - {10, 12, 13, 21, 50, 65, 85}.
Эту проблему можно решить со сложностью O (n²) с помощью рекурсии или динамического программирования. Но есть другой подход, который может..
Содержит дубликат III
Содержит дубликат III
Проблема
Дан целочисленный массив nums и два целых числа k и t, вернуть истину, если в массиве есть два различных индекса i и j, такие что abs (nums [i] - nums [j]) ‹= t и abs (i - j) ‹= K.
Пример 1:
Input: nums = [1,2,3,1], k = 3, t = 0
Output: true
Пример 2:
Input: nums = [1,0,1,1], k = 1, t = 2
Output: true
Пример 3:
Input: nums = [1,5,9,1,5,9], k = 2, t = 3
Output: false
Подсказка №1
Сложность времени O (n log k) - это укажет, что..
Упростите функции Heapify
Кучи — одна из самых удобных структур данных.
Это упрощает операции по поднятию тяжестей до линейного времени за кулисами без путаницы ссылок.
Удивительно, но сам акт с этим приятелем также довольно легко понять.
Начнем с полезных деталей.
Кучи — это полные бинарные деревья. Если есть N узлов, N/2 являются родительскими узлами, а остальные являются дочерними/конечными узлами. Кучи можно легко реализовать с помощью массива с корнем в k-м индексе, левым дочерним элементом в позиции..
Бинарный поиск по матрице
Постановка задачи — проверить, присутствует ли элемент в матрице размера n*m, в которой строки и столбцы отсортированы по возрастанию.
Образец ввода -
[ [1, 3, 12],
[2, 4 , 20],
[5, 10, 30]]
k=4
Вывод
истинный
Решение :
Первоначальная мысль состоит в том, чтобы применить бинарный поиск к каждой строке, и если в какой-либо из строк есть элемент, то вернуть true, иначе вернуть false.
Временная сложность решения составляет O (n log m), что лучше, чем решение..
ArrayList- Java
Динамический массив в java называется ArrayList. Класс ArrayList расширяет AbstractList, который реализует класс List, где класс List расширяет Collection, а Collection расширяет Iterable. ArrayList более гибок, чем встроенная структура данных Array.
Доступ, вставка, удаление, изменение элементов в ArrayList очень просты.
Давайте посмотрим на объявление ArrayList.
ArrayList‹E› arrayList = новый ArrayList‹E›
E — это тип данных элементов, которые мы хотим вставить в список..
Найдите все возможные комбинации k чисел от 1 до n.
кодирование задачи собеседования
Уровень сложности
Середина
Запрошено
Amazon, Adobe
Обсуждены три решения
Включение и исключение каждого элемента Исправьте элементы и повторите для создания комбинации номеров K Рекурсивный поиск с возвратом - подход DFS
Основные выводы после прочтения этого блога
Это хорошая задача на собеседовании, чтобы понять концепцию решения проблем с использованием обратного отслеживания и комбинаторики. Мы можем использовать аналогичные..