Публикации по теме '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...