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

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

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

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

№4974320675
Download Telegram
Перестановки, зависящие от регистра символа

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

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

Пример:

Ввод: s = "a1b2"
Вывод: ["a1b2","a1B2","A1b2","A1B2"]

Ввод: s = "3z4"
Вывод: ["3z4","3Z4"]

Решение задачи
👍3
Треугольник

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

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

Пример:
Ввод: triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
Вывод: 11

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

2
3 4
6 5 7
4 1 8 3

Минимальный путь выглядит следующим образом: 2 + 3 + 5 + 1 = 11.

Решение задачи
👍111
Мокрые бандиты

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

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

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

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

Пример:

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

Объяснение: Грабим 1-ый дом (money = 1), а после навещаем 3-ий дом (money = 3).
Суммарный куш: 1 + 3 = 4.

Решение задачи
👍8
Максимальная площадь острова

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

Условие задачи: Условие задачи: дан двумерный массив размера m x n. "1" отвечает за сушу, "0" - за океан. Требуется опеределить максмимальную площадь острова из островов, расположенных на карте.

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


Пример:

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

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

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

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

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

Пример:

Ввод:
matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
Вывод:
True

Ввод:
matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
Вывод:
Fasle

Решение задачи
👍3
Максимальный подмассив

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

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

Подмассивом называется последовательная часть исходного массива.

Пример:

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

Объяснение:
4,-1,2,1] имеет наибольшую сумму 6.

Ввод:
nums = [5,4,-1,7,8]
Вывод:
23

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

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

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

Пример:

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

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

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

Решение задачи
👍131
Комбинации

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

Условие задачи: даны два целых положительных числа n и k. Надо вывести все комибинации, состоящие из k-чисел в диапазоне [1, n].

Пример:

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

Объяснение: число перестановок равно 6. Важным моментом является неупорядоченность чисел внутри самих комбинаций, то есть пары [1,2] и [2,1] являются одинаковыми.

Ввод: n = 1, k = 1
Вывод: [[1]]

Решение задачи
👍6🎉1
Проверка бинарного дерева

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

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

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

Пример:

Ввод:
root = [5,1,4,null,null,3,6]
Вывод:
False
Объяснение:
4 < 5, но при этом находится в правом поддереве.

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

Решение задачи
👍5
Сцепка бинарного дерева

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

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

Пример:

Ввод:
root = [3,9,20,null,null,15,7]
Вывод:
[[3],[9,20],[15,7]]
Объяснение:

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

Решение задачи
👍9
Изъятие дубликатов из односвязного списка

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

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

Пример:

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

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

Решение задачи
👍5
Перенос каждого указателя вправо

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

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

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

Пример:

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

Решение задачи
👍4
Вставка в бинарное дерево

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

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

Может существовать несколько возможных вариантов вставок. Необходимо вернуть любой из них.

Пример:

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

Объяснение: другой вариант -[5,2,7,1,3,4]


Ввод: root = [40,20,60,10,30,50,70], val = 25
Вывод: [40,20,60,10,30,50,70,null,null,25]

Решение задачи
👍32
Быки и коровы

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

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

Быки - правильные цифры, находящиеся на нужных позициях.

Коровы - правильные числа, но находящиеся на соответствующих позициях.

Задача - выдать подсказку в формате "xAyB", где x - количество быков, y - количество коров.

Пример:

Ввод:
secret = "1807", guess = "7810"
Вывод: "1A3B"
Объяснение:

Ввод:
secret = "1123", guess = "0111"
Вывод: "1A1B"

Решение задачи
👍6
Петля в связном списке II

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

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

Пример:

Ввод:
head = [3,2,0,-4], pos = 1
Вывод:
последний элемент зацикливается на элементе с индексом
1*.

* соответствующий список проиллюстрирован на картинке.

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

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

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

Пример:

Ввод:
s = "3[a]2[bc]"
Вывод:
"aaabcbc"

Ввод:
s = "3[a2[c]]"
Вывод:
"accaccacc"

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

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

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

Пример:

Ввод:
s = "a1b2"
Вывод:
["a1b2","a1B2","A1b2","A1B2"]
Объяснение:

Ввод:
s = "3z4"
Вывод:
["3z4","3Z4"]

Решение задачи
👍6
Переспелые апельсины

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

Условие задачи: дана двумерная решетка размера m x n, в каждой из ячеек может находится одно из следующих значений:
0 - пустая ячейка,
1 - созревший апельсин,
2 - переспевший апельсин.

Каждую минуту апельсины, находящие рядом (сверху, слева, снизу, вправа) с переспевшими - становятся переспевшими.

Необходимо подсчитать количество минут, за которое все апельсины превратятся из свежих в переспевшие. Если это невозможно, то в ответе должна получаться -1.

Пример:

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

Ввод: grid = [[2,1,1],[0,1,1],[1,0,1]]
Вывод: -1
Объяснение: переспевший фрукт не контактирует со спелыми плодами.

Решение задачи
👍5
Слияние двух отсортированных массивов

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

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

Надо свзать оба массива в один в порядке неубывания.

Результирующий массив должен содержаться в массиве nums1.

Пример:

Ввод:
nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
Вывод: [1,2,2,3,5,6]

Ввод: nums1 = [1], m = 1, nums2 = [], n = 0
Вывод: [1]

Решение задачи
👍3
Вращение изображения

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

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

Решение должно фактически изменять исходный массив, не создавая новой матрицы.

Пример:

Ввод:
matrix = [[1,2,3],[4,5,6],[7,8,9]]
Вывод: [[7,4,1],[8,5,2],[9,6,3]]


Ввод: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
Вывод: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

Решение задачи
👍11
Наидлиннейший общий префикс

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

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

Пример:

Ввод:
strs = ["flower","flow","flight"]
Вывод:
"fl"

Ввод:
strs = ["dog","racecar","car"]
Вывод:
""
Объяснение: в данных строках нет общего префикса

Решение задачи
👍2