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
Минимальная глубина бинарного дерева

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

Условие задачи: дано бинарное дерево. Необходимо найти минимальную глубину дерева.

Глубина дерева - количество узлов от корня до ближайшего потомка.

Пример:

Ввод: root = [3,9,20,null,null,15,7]
Вывод: 2

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

Решение задачи
👍21
Максимальное количество единиц

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

Условие задачи: дается бинарный массив (состоит только из 0 и 1). Необходимо вычислить максимальную длину подмассива, в котором присутствуют только 1.

Пример:

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

Решение задачи
👍4🔥21
Пути в бинарном дереве

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

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

Пример:

Ввод:
root = [1,2,3,null,5]
Вывод:
["1->2->5","1->3"]

Ввод:
root = [1]
Вывод:
["1"]

Решение задачи
Сумма минимумов подмассивов

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

Условие задачи: дается массив целых чисел, необходимо посчитать сумму минимумов подмассивов, ответ может быть большим, необходимо посчитать результат по модулю 10^9 + 7.

Пример:

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

Объяснение:
Подмассивы: [3], [1], [2], [4], [3,1], [1,2], [2,4], [3,1,2], [1,2,4], [3,1,2,4], минимумы этих подмассивов: 3, 1, 2, 4, 1, 1, 2, 1, 1, 1, которые в сумме дают 17.

Решение задачи
👍6
Поиск слова

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

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

Слово можно составлять из соседей справа, слева, сверху или снизу.

Пример:

Ввод:
board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
Вывод: true
Объяснение: *во вложении

Решение задачи
👍51
Шаблон слова

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

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

Под соответствием имеется биекция двух строковых наборов, которая в результате дает непустое слово.

Пример:

Ввод:
pattern = "abba", s = "dog cat cat dog"
Вывод: true

Ввод: pattern = "abba", s = "dog cat cat fish"
Вывод: false

Решение задачи
👍4
Подсчет подостровов

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

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

Острова на второй решетке рассматриваются как подострова только в случае полного соответствия отображения с первой решетки.

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

Пример:

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

Ввод:
grid1 = [[1,0,1,0,1],[1,1,1,1,1],[0,0,0,0,0],[1,1,1,1,1],[1,0,1,0,1]], grid2 = [[0,0,0,0,0],[1,1,1,1,1],[0,1,0,1,0],[0,1,0,1,0],[1,0,0,0,1]]
Вывод:
2

Решение задачи
👍1
Избыточность соединения

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

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

Узлы графа соединены между собой и отражаются списком соединения edges[i] = [ai, bi].

В графе имеется избытоное ребро, которое может быть безболезнено извлечено из списка связности.

Необходимо вывести ребро, которое можно удалить без потери информации.

Пример:

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


Решение задачи
👍2
Подмассив с наибольшим произведением

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

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

Подмассив - последовательный кусок исходного массива.

Пример:

Ввод:
nums = [2,3,-2,4]
Вывод: 6
Объяснение:
[2, 3] имеют наибольшее произведение.

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

Решение задачи
👍2
Последний из камней

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

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

Осуществляется игра в камни: берутся два камня с наибольшим весом и сталкиваются. Результат их столкновения может быть следующим:

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

Игра продолжается до тех пор пока есть хотя бы один камень, необходимо вернуть это самый последний вес. При отсутствии камней в конце - вернуть ноль.

Пример:

Ввод:
stones = [2,7,4,1,8,1]
Вывод: 1

Решение задачи
👍6
Текущая длительность котировок

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

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

Пример:

Ввод:
["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
[[], [100], [80], [60], [70], [60], [75], [85]]
Вывод: [null, 1, 1, 1, 2, 1, 4, 6]

Объяснение:
StockSpanner stockSpanner = new StockSpanner();
stockSpanner.next(100); // return 1
stockSpanner.next(80); // return 1
stockSpanner.next(60); // return 1
stockSpanner.next(70); // return 2
stockSpanner.next(60); // return 1
stockSpanner.next(75); // return 4, так как цены за четыре предыдущих дня (включая сегодняшний) были меньше или равны;
stockSpanner.next(85); // return 6

Решение задачи
👍3
Make the string great AGAIN

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

Условие задачи: дается строка, состоящая из латинских букв как в нижнем, так и в вернем регистре.

Строка считается качественной, если две соседние буквы не представлены одной и той же буквой, но в разных регистрах. Такие буквы удаляются до тех пор, пока строка не станет качественной.

Вернуть надо строку, над которой были совершены все преобразования. Гарантируется уникальность ответа.

Пустая строка по умолчанию является качественной.

Пример:

Ввод:
s = "leEeetcode"
Вывод:
"leetcode"

Решение задачи
👍4
Подсчет узлов бинарного дерева

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

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

Полным дерево считается в случае, если на каждом уровне (возможно за исключением последнего) у каждого родителя имеется пара потомков.

Необходимо разработать алгоритм с временной сложностью менее O(n).

Пример:

Ввод:
root = [1,2,3,4,5,6]
Вывод: 6
Объяснение: *во вложении

Решение задачи
👍5
Произведение подмассива меньше  K

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

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

Пример:

Ввод:
nums = [10,5,2,6], k = 100
Вывод:
8
Объяснение:
[10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6]

Решение задачи
👍3
Два огромных океана

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

Условие задачи: на вход подается двумерная матрица, которая отображает рельеф острова (чем больше значение в ячейке, тем выше рельеф в текущей точке относительно уровня моря), окруженного двумя океанами: Тихим и Атлантическим.

После того, как прошел бурный дождь по острову начала стекать вода. Жидкость может течь лишь в том направлении, где рельеф в текущей точке не меньше (по значению на решетке), чем рельеф в соседней.

Необходимо выявить точки, из которых дождевая вода может попасть и в Тихий океан и в Атлантический.

Пример:

Ввод:
heights = [[1,2,2,3,5],[3,2,3,4,4],[2,4,5,3,1],[6,7,1,4,5],[5,1,1,2,4]]
Вывод: [[0,4],[1,3],[1,4],[2,2],[3,0],[3,1],[4,0]]
Объяснение: *во вложении

Решение задачи
👍1
Удаление дубликатов из отсортированного связного списка

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

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

Пример:

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

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

Решение задачи
👍4
Преобразование параметров матрицы

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

Условие задачи: дана матрица (m x n), необходимо выполнить преобразования чтобы матрица имела параметры количества строк и столбцов (r x c).

Значения в новой матрицы должны быть взяты из исходной.

Пример:

Ввод:
mat = [[1,2],[3,4]], r = 1, c = 4
Вывод: [[1,2,3,4]]

Ввод: mat = [[1,2],[3,4]], r = 2, c = 4
Вывод: [[1,2],[3,4]]

Решение задачи
👍2
Диаметр бинарного дерева

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

Условие задачи: дан корневой элемент бинарного дерева, необходимо расчитать диаметр бинарного дерева.

Диаметр бинарного дерева - наибольшая длина между двумя любыми узлами в дереве (необязательно включая корневой элемент всего дерева).

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

Пример:

Ввод:
root = [1,2,3,4,5]
Вывод:
3
Объяснение:
длина пути [4,2,1,3] или пути [5,2,1,3].

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

Решение задачи
👍2
Поиск суммы в бинарном дереве поиска

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

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

Пример:

Ввод:
root = [5,3,6,2,4,null,7], k = 9
Вывод:
true

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

Решение задачи
👍2
Калькулятор II

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

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

Целочисленное деление округляет число в сторону нуля.

Нельзя пользоваться встроенными функциями.

Пример:

Ввод:
s = "3+2*2"
Вывод: 7

Ввод: s = " 3/2 "
Вывод: 1

Решение задачи
👍61👎1