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

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

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

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

№4974320675
Download Telegram
Сумма на отрезке

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

Условие задачи: дается бинарное дерево поиска, дается два числа low и high, необходимо посчитать сумму узлов дерева, находящихся в пределах данного отрезка [low, high].

Пример:

Ввод:
root = [10,5,15,3,7,null,18], low = 7, high = 15
Вывод: 32
Объяснение: в данный отрезок входят числа 7, 10, 15.

Решение задачи
Матрица 01

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

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

Пример:

Ввод:
mat = [[0,0,0],[0,1,0],[0,0,0]]
Вывод: [[0,0,0],[0,1,0],[0,0,0]]
Объяснение: *во вложении

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

Решение задачи
👍1🤔1
Максимальное произведение разделенного бинарного дерева

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

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

Необходимо вычислить это произведение. Так как произведение может быть слишком большим, то необходимо посчитать результат по модулю 1е9 + 7.

Пример:

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

Решение задачи
Максимальная сумма по ребрам бинарного дерева

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

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

Сумма по ребрам в дереве представляет из себя сумму значений из узлов.

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

Пример:

Ввод:
root = [-10,9,20,null,null,15,7]
Вывод:
42
Объяснение:
путь 15 -> 20 -> 7 имеет наибольшую сумму в дереве.

Решение задачи
👍41
Подъем по ступеням

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

Условие задачи: человек поднимается по ступенькам. Для подъема на вершину лестницы необходимо сделать n шагов.

При каждом шаге можно делать выбор: подниматься на 1 или же на 2 шага. Нужно посчитать сколькими способами можно подняться на вершину.

Пример:

Ввод:
n = 2
Вывод: 2
Объяснение: существует лишь два варианта:
1. 1 шаг + 1 шаг;
2. 2 шага.

Ввод: n = 3
Вывод: 3
Объяснение:
1. 1 шаг + 1 шаг + 1 шаг
2. 1 шаг + 2 шага
3. 2 шага + 1 шаг

Решение задачи
Атака Тимо

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

Условие задачи: происходит абстрактная ситуация наш персонаж Тимо атакует своего соперника Эша. Результатом атаки является отравление оппонента на duration секунд. То есть начав атаку в момент времени t отравление будет длиться в промежуток времени [t, t + duration - 1].

Если Тимо решит нанести ещё один удар до окончания действия отравления от предыдущего, то итоговое отравление закончится через duration секунд.

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

Пример:

Ввод:
timeSeries = [1,4], duration = 2
Вывод: 4

Решение задачи
Возрастающая подпоследовательность наибольшей длины

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

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

Пример:

Ввод:
nums = [10,9,2,5,3,7,101,18]
Вывод:
4
Объяснение:
подпоследовательность [2,3,7,101] имеет наибольшую длину.

Решение задачи
🎄1
Ряд клавиатуры

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

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

Пример:

Ввод:
words = ["Hello","Alaska","Dad","Peace"]
Вывод:
["Alaska","Dad"]
Объяснение:

Ввод:
words = ["omk"]
Вывод:
[ ]

Решение задачи
🎄3👍1
Сумма вдоль столбцов

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

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

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

Пример:

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

Решение задачи
🎄1
Поиск моды в бинарном дереве поиска

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

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

Мода - элемент, встречающийся чаще всех в какой-либо структуре данных.

Пример:

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

Ввод: root = [0]
Вывод:
[0]

Решение задачи
👍4
Идеальное число

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

Условие задачи: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.

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

Пример:

Ввод:
num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14

Ввод: num = 7
Вывод: false

Решение задачи
👎3👍2
Общая подпоследовательность наибольшей длины

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

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

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

Пример:

Ввод:
text1 = "abcde", text2 = "ace"
Вывод: 3
Объяснение: "ace"

Ввод: text1 = "abc", text2 = "def"
Вывод: 0

Решение задачи
👍3
Минимальное количество ребер

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

Условие задачи: дается ациклический направленный граф с вершинами, пронумерованными от 0 до n-1.

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

Пример:

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

Решение задачи
👍1🤔1
Минимальная разница по модулю

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

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

Пример:

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

Ввод: root = [1,0,48,null,null,12,49]
Вывод: 1

Решение задачи
Ежедневная температура

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

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

Пример:

Ввод:
temperatures = [73,74,75,71,69,72,76,73]
Вывод: [1,1,4,2,1,1,0,0]

Ввод: temperatures = [30,40,50,60]
Вывод: [1,1,1,0]

Решение задачи
👍5👎1
Нахождение существующего пути

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

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

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

Пример:

Ввод:
n = 3, edges = [[0,1],[1,2],[2,0]], source = 0, destination = 2
Вывод: true
Объяснение: *во вложении

Ввод: n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], source = 0, destination = 5
Вывод: false

Решение задачи
👍2👎1
Отрезки пересечения отрезков

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

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

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

Пример:

Ввод:
firstList = [[0,2],[5,10],[13,23],[24,25]], secondList = [[1,5],[8,12],[15,24],[25,26]]
Вывод: [[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]]

Ввод: firstList = [[1,3],[5,9]], secondList = []
Вывод: [ ]

Решение задачи
👍3
Разворот строки II

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

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

Если есть несколько символов больших k, необходимо развернуть все из них. Если есть меньше, чем 2k символов, но при этом больше или равно k символов, то необходимо оставить все как есть.

Пример:

Ввод:
s = "abcdefg", k = 2
Вывод: "bacdfeg"

Ввод: s = "abcd", k = 2
Вывод: "bacd"

Решение задачи
👍2🎉1
Сумма расстояний в дереве

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

Условие задачи: имеется ненаправленное дерево, соединяющее n узлов пронумерованных от 0 до n-1.

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

Необходимо вычислить массив, состоящий из длин между узлами, находящимися в исходном массиве edges.

Пример:

Ввод:
n = 6, edges = [[0,1],[0,2],[2,3],[2,4],[2,5]]
Вывод: [8,12,6,10,10,10]
Объяснение:

Дистанция между узлом состоит из следующих длин:
dist(0,1) + dist(0,2) + dist(0,3) + dist(0,4) + dist(0,5) = 1 + 1 + 2 + 2 + 2 = 8.

Решение задачи
👍2
Партиционированние массива

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

Условие задачи: дается целочисленный массив, содержащий 2n-чисел, надо сгруппировать эти числа в n-пар (a1, b1), (a2, b2), ..., (an, bn), таких что сумма min(ai, bi) для всех i - максимальна. Необходимо вычислить максимальную сумму.

Пример:

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

Комбинации пар :
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4 (максимум).

Решение задачи
👍1🎉1