LeetCode Community
9.75K subscribers
802 photos
5 videos
1.1K links
Сообщество пользователей-фанатов LeetCode. 🦾

Ссылка для друга: https://t.me/+fhGikrkptrpkYmIy

По всем вопросам: @mascarov_valentin или @adv_and_pr

НЕ являемся официальным каналом leetcode.com.

№4974320675
Download Telegram
Создание четырехугольного дерева

Сложность: Средняя

Условие задачи: дана матричная сетка n * n, состоящая только из 0 и 1. Мы хотим представить сетку в виде четырехъядерного дерева.

Возвращает корень квадродерева, представляющего сетку.

Обратите внимание, что вы можете присвоить значению узла значение True или False, когда isLeaf имеет значение False, и оба значения принимаются в ответе.

Квадродерево - это древовидная структура данных, в которой каждый внутренний узел имеет ровно четыре дочерних элемента. Кроме того, каждый узел имеет два атрибута.
Выполните рекурсию для каждого из дочерних элементов с соответствующей подсеткой.

Пример:

Ввод:
grid = [[0,1],[1,0]]
Вывод: [[0,1],[1,0],[1,1],[1,1],[1,0]]

Решение задачи
👍6
Поиск дубликата поддерева

Сложность: Средняя

Условие задачи: дается корень двоичного дерева, верните все повторяющиеся поддеревья.

Для каждого вида повторяющихся поддеревьев вам нужно только вернуть корневой узел любого из них.

Два дерева дублируются, если они имеют одинаковую структуру с одинаковыми значениями узлов.

Пример:

Ввод:
root = [1,2,3,4,null,2,4,null,null,4]
Вывод: [[2,4],[4]]

Решение задачи
👍5
Треугольник максимальной площади

Сложность: Лёгкая

Условие задачи: дается массив точек на плоскости X-Y, где точки [i] = [xi, yi], верните площадь самого большого треугольника, который может быть образован любыми тремя различными точками. Будут приняты ответы в пределах 10-5 от фактического ответа.

Пример:

Ввод:
points = [[0,0],[0,1],[1,0],[0,2],[2,0]]
Вывод: 2.00000

Решение задачи
👍7
Сортировка массива

Сложность: Средняя

Условие задачи: дается массив целых чисел nums, отсортируйте массив в порядке возрастания и верните его.

Вы должны решить проблему без использования каких-либо встроенных функций в O(nlog(n)) временной сложности и с наименьшей возможной пространственной сложностью.

Пример:

Ввод:
nums = [5,2,3,1]
Вывод: [1,2,3,5]

Ввод: nums = [5,1,1,2,0,0]
Вывод: [0,0,1,1,2,5]

Решение задачи
👍5🤔2
Извлечение дубликатов из отсортированного списка II

Сложность: Средняя

Условие задачи: на вход подается указатель на начало связного списка, необходимо удалить все узлы, имеющие дубликаты, то есть в списке должны остаться лишь уникальные значения, которые были в изначальном списке. Необходимо вернуть связный список в отсортированном порядке как и был.

Пример:

Ввод:
head = [1,2,3,3,4,4,5]
Вывод:
[1,2,5]

Ввод:
head = [1,1,1,2,3]
Вывод:
[2,3]

Решение задачи
👍1
Сжатие строки

Сложность: Средняя

Условие задачи: дается массив символов chars, сожмите его, используя следующий алгоритм:

Начинайте с пустой строки s. Для каждой группы последовательных повторяющихся символов в chars:

Если длина группы равна 1, добавьте символ для просмотра.
В противном случае добавьте символ, за которым следует длина группы.
Сжатые строки не должны возвращаться отдельно, а вместо этого должны храниться во входном символьном массиве chars. Обратите внимание, что длина группы, равная 10 или более, будет разделена на несколько символов в chars.

После того, как вы закончите изменять входной массив, верните новую длину массива.

Вы должны написать алгоритм, который использует только постоянное дополнительное пространство.

Пример:

Ввод:
chars = ["a","a","b","b","c","c","c"]
Вывод: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"]

Решение задачи
👍3
Поиск первого вхождения

Сложность: Средняя

Условие задачи: дается две строки needle и haystack, верните индекс первого появления иглы в стоге сена или -1, если игла не является частью стога сена.

Пример:

Ввод:
haystack = "sadbutsad", needle = "sad"
Вывод: 0

Ввод: haystack = "leetcode", needle = "leeto"
Вывод: -1

Решение задачи
👍6👎4
Отсутствующее число

Сложность: Лёгкая

Условие задачи: дан массив arr из натуральных чисел, отсортированных в строго возрастающем порядке, и целое число k.

Возвращает k-е положительное целое число, отсутствующее в этом массиве.

Пример:

Ввод:
arr = [2,3,4,7,11], k = 5
Вывод: 9

Ввод: arr = [1,2,3,4], k = 2
Вывод: 6

Решение задачи
👍7🎉1
Игра в прыжки IV

Сложность: Тяжёлая

Условие задачи: дается массив целых чисел arr, вы изначально располагаетесь по первому индексу массива.

За один шаг вы можете перейти от индекса i к индексу:

i + 1, где: i + 1 < длина обр.
i - 1, где: i - 1 >= 0.
j где: arr[i] == arr[j] и i != просто.
Возвращает минимальное количество шагов для достижения последнего индекса массива.

Обратите внимание, что вы не можете в любой момент выйти за пределы массива.

Пример:

Ввод:
arr = [100,-23,-23,404,100,23,23,23,3,404]
Вывод: 3

Ввод: arr = [7]
Вывод: 0

Решение задачи
👍61👎1
Минимальное количество времени для путешествий

Сложность: Средняя

Условие задачи: дается массив time, где time[i] обозначает время, затраченное i-м автобусом на выполнение одной поездки.

Каждый автобус может совершать несколько поездок подряд; то есть следующая поездка может начаться сразу после завершения текущей поездки. Кроме того, каждый автобус работает независимо; то есть поездки одного автобуса не влияют на поездки любого другого предприятия.

Вам также дается целое число общих поездок, которое обозначает количество поездок, которые все автобусы должны совершить в общей сложности. Возвращает минимальное время, необходимое всем автобусам для завершения как минимум общего количества поездок.

Пример:

Ввод:
time = [1,2,3], totalTrips = 5
Вывод: 3

Ввод: time = [2], totalTrips = 1
Вывод: 2

Решение задачи
С 8 марта прекрасных девушек!
🎉3520
Подмассив с фиксированными границами

Сложность: Тяжёлая

Условие задачи: дается целочисленный массив nums и два целых числа minK и maxK.

Подмассив nums с фиксированной привязкой - это подмассив, который удовлетворяет следующим условиям:

Минимальное значение в подмассиве равно minK.
Максимальное значение в подмассиве равно max.
Возвращает количество подмассивов с фиксированной привязкой.

Подмассив - это непрерывная часть массива.

Пример:

Ввод:
nums = [1,3,5,2,7,5], minK = 1, maxK = 5
Вывод: 2

Ввод
: nums = [1,1,1,1], minK = 1, maxK = 1
Вывод: 10

Решение задачи
👍5
Случайный узел списка

Сложность: Средняя

Условие задачи: дается односвязный список, верните значение случайного узла из связанного списка. Каждый узел должен иметь одинаковую вероятность быть выбранным.

Реализуйте класс решения:

Инициализируется объект с помощью заголовка односвязного списка head.
int getRandom() случайным образом выбирает узел из списка и возвращает его значение. Все узлы списка должны быть выбраны с равной вероятностью.

Пример:

Ввод:
["Solution", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom"]
[[[1, 2, 3]], [], [], [], [], []]
Вывод: [null, 1, 3, 2, 2, 3]

Решение задачи
👍6
Соединение связных списков

Сложность: Тяжёлая

Условие задачи: дается массив из k списков связанных списков, каждый связанный список сортируется в порядке возрастания.

Объедините все связанные списки в один отсортированный связанный список и верните его.

Пример:

Ввод:
lists = [[1,4,5],[1,3,4],[2,6]]
Вывод: [1,1,2,3,4,4,5,6]

Ввод: lists = []
Вывод: []

Решение задачи
👍92
Скобочная пунктуация

Сложность: Лёгкая

Условие задачи: дана строка, содержащая в себе только символы: '(', ')', '{', '}', '[', ']'. Надо выполнить проверку на то, корректно ли открыты и закрыты все скобки.

Пример:

Ввод:
s = "()"
Вывод: True

Ввод: s = "()[]{}"
Вывод: True

Ввод: s = "(]"
Вывод: False

Решение задачи
6
От предка до потомка

Сложность: Средняя

Условие задачи: дается корень двоичного дерева, содержащего только цифры от 0 до 9.

Каждый путь от корня к листу в дереве представляет собой число.

Например, путь от корня к листу 1 -> 2 -> 3 представляет число 123.
Возвращает общую сумму всех чисел от корня до конца. Тестовые примеры генерируются таким образом, чтобы ответ помещался в 32-разрядное целое число.

Конечный узел - это узел без дочерних элементов.

Пример:

Ввод:
root = [1,2,3]
Вывод: 25

Ввод: root = [4,9,0,5,1]
Вывод: 1026

Решение задачи
👍3
Симметрия в дереве

Сложность: Лёгкая

Условие задачи: дается корень двоичного дерева, проверьте, является ли оно зеркалом самого себя (т.е. симметричным вокруг своего центра).

Пример:

Ввод
: root = [1,2,2,null,3,null,3]
Вывод: false

Решение задачи
👍3
Проверка полноты бинарного дерева

Сложность: Средняя

Условие задачи: дается корень двоичного дерева, определите, является ли это полным двоичным деревом.

В полном двоичном дереве каждый уровень, за исключением, возможно, последнего, полностью заполнен, и все узлы на последнем уровне расположены как можно дальше слева. Он может иметь от 1 до 2h узлов включительно на последнем уровне h.

Пример:

Ввод:
root = [1,2,3,4,5,6]
Вывод: true

Ввод: root = [1,2,3,4,5,null,7]
Вывод: false

Решение задачи
👍8
Количество изолированных островов

Сложность: Средняя

Условие задачи: дан двумерный массив, содержащий 0 (острова) и 1(воду).

Остров - множество нулей, соединенных в четырех направлениях (справа, снизу, слева, сверху), изолированый остров - множество нулей, окруженных со всех сторон единицами.

Надо посчитать количество изолированных островов.

Пример:

Ввод:
grid = [[1,1,1,1,1,1,1,0],[1,0,0,0,0,1,1,0],[1,0,1,0,1,1,1,0],[1,0,0,0,0,1,0,1],[1,1,1,1,1,1,1,0]]
Вывод:
2
Объяснение:

Ввод:
grid = [[0,0,1,0,0],[0,1,0,1,0],[0,1,1,1,0]]
Вывод:
1

Решение задачи
👍5
Замена элемента на правый максимум

Сложность: Лёгкая

Условие задачи: дан массив, необходимо заменить каждый элемент на максимальный из тех, что находятся справа. В случае отсутствия такого элемента, используется -1.

Пример:

Ввод:
arr = [17,18,5,4,6,1]
Вывод: [18,6,6,6,1,-1]

Решение задачи
👍5🤔1