Публикации по теме 'leetcode'
34. Найти первую и последнюю позицию элемента в отсортированном массиве — LeetCode
Дан массив целых чисел nums , отсортированных в неубывающем порядке, найти начальную и конечную позиции данного значения target .
Если target не найдено в массиве, вернуть [-1, -1] .
Вы должны написать алгоритм со сложностью выполнения O(log n) .
Пример 1:
Input: nums = [5,7,7,8,8,10], target = 8
Output: [3,4]
Пример 2:
Input: nums = [5,7,7,8,8,10], target = 6
Output: [-1,-1]
Пример 3:
Input: nums = [], target = 0
Output: [-1,-1]
Ограничения:
0 <=..
Овладейте всеми типами графических алгоритмов и их примерами кода
Я провел сотни интервью. Я очень часто замечал, что кандидат мог успешно определить проблему с помощью графового подхода, но не реализовал алгоритм. В этом посте я расскажу о распространенных типах графовых алгоритмов вместе с их примерами кода.
Стандартная DFS (предзаказ и постзаказ) Стандартный БФС Топологическая сортировка с BFS Топологическая сортировка с DFS Алгоритм Дейкстры
Leetcode: 3 хитрости, чтобы справиться с проблемами связанных списков
3 хитрости для решения проблем, связанных со связанными списками
Почему связанный список?
Связанный список является важной структурой данных, поскольку он может динамически изменять размер и распределять адреса памяти. Например, если мы хотим сохранить список студентов, регистрирующихся в классе, но не знаем заранее, сколько студентов запишется в класс в этом семестре. Многие студенты могут добавлять/удалять классы в предсеместровый период, поэтому в списке может быть много операций..
LeetCode 21- Объединение двух отсортированных списков
Вопрос :
Вам даны заголовки двух отсортированных связанных списков list1 и list2 .
Объедините два списка в один отсортированный список. Список должен быть составлен путем соединения узлов первых двух списков.
Возвращает заголовок объединенного связанного списка .
Пример 1:
Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Ограничения:
Количество узлов в обоих списках находится в диапазоне [0, 50] . -100 <= Node.val <= 100 И list1..
Самый длинный возрастающий путь в матрице
Ссылка: https://leetcode.com/problems/длиннейший-возрастающий-путь-в-матрице/
Первая мысль
Это проблема поиска, и мы обычно используем DFS, чтобы найти самую длинную последовательность, и используем BFS, чтобы найти самую короткую последовательность. Чтобы сократить время поиска, мы используем запоминаемый поиск, потому что это возрастающая последовательность, поэтому нам не нужно беспокоиться о перекрытии последовательностей, поэтому нам не нужна матрица visited .
Та же проблема с деревом
Новый день и новая проблема с литкодом. Сегодня это Проблема одного и того же дерева , и она проста, но я намерен здесь перечислить все возможные подходы к решению этой проблемы.
Постановка задачи. Имея корни двух бинарных деревьев p и q , напишите функцию, которая проверяет, совпадают ли они или нет. Два бинарных дерева считаются одинаковыми, если они структурно идентичны, а узлы имеют одинаковое значение.
Input: p = [1,2,3], q = [1,2,3]
Output: true
Input: p =..
Медиана двух отсортированных массивов🚚
Вопрос
Имея два отсортированных массива nums1 и nums2 размером m и n соответственно, верните медиану двух отсортированных массивов.
Общая сложность времени выполнения должна быть O(log (m+n)) .
Пример 1:
Input: nums1 = [1,3], nums2 = [2]
Output: 2.00000
Explanation: merged array = [1,2,3] and median is 2.
Пример 2:
Input: nums1 = [1,2], nums2 = [3,4]
Output: 2.50000
Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5...