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
Одно редактирование

Сложность задачи: Средняя

Условие задачи:
Даны две строки s и t. Требуется вернуть true, если обе они находятся на расстоянии редактирования друг от друга, в противном случае вернуть false.

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

Пример:
Ввод: s = "ab", t = "acb"
Вывод: true
Объяснение: Мы можем вставить 'c' в s, чтобы получить t.

Ввод: s = "", t = ""
Вывод: false

Решение задачи
👍3
Сместить массив

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

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

Пример:

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

Ввод: nums = [-1,-100,3,99], k = 2
Вывод: [3,99,-1,-100]

Решение задачи
👍2
Топ k-наиболее часто встречающихся слов

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

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

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

Пример:

Ввод:
words = ["i","love","leetcode","i","love","coding"],
k = 2
Вывод: ["i","love"]

Объяснение: "i" и "love" два наиболее частых слова.
Но заметим, что "i" идет первее, чем "love" как раз-таки из-за алфавитного порядка.

Ввод: words = ["the","day","is","sunny","the","the","the","sunny","is","is"], k = 4
Вывод: ["the","is","sunny","day"]

Решение задачи
👍2
Наиболее эффективное поднятие по ступеням

Сложность задачи: Лёгкая.

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

Начинать путь можно либо со ступени с индексом 0 либо с индексом 1.

Задача - пройти всю лестницу с минумальной суммой весов ступеней.

Пример:

Ввод: cost = [10,15,20]
Вывод: 15

Ввод: cost = [1,100,1,1,1,100,1,1,100,1]
Вывод: 6

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

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

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

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

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

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

Пример:

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

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

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

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

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

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

Пример:

Ввод:
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]

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

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

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

Пример:

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

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

Решение задачи
👍4
Сортировка связного списка

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

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

Пример:

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

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

Можете ли вы отсортировать связанный список за O (n logn) времени и O(1) памяти (т.е. постоянного пространства)?

Решение задачи
👍3
Спиральная матрица

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

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

Пример:

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

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

Решение задачи
👍4
Тройная сумма

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

Условие задачи: дан целочисленный массив nums, вычислите все тройки [nums[i], nums[j], nums[k]] такие что i != j, i != k, и j != k, и nums[i] + nums[j] + nums[k] == 0.

Решение не должно содержать дубликатов.

Пример:

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

Объяснение: nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0.
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0.
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0.

Но уникальные тройки - [-1,0,1] и [-1,-1,2].

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

Решение задачи
👍3🤔1
К-ый наименьший элемент в бинарном дереве поиска

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

Условие задачи: на вход подается бинарное дерево поиска, необходимо осуществить в нем поиск К-наименьшего элемента (при условии индексирования с 1).

Пример:

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

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

Решение задачи
👍2
Прямой обход дерева

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

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

Пример:

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

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

Решение задачи
👍2
Грабители 2

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

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

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

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

Пример:

Ввод: nums = [2,3,2]
Вывод: 3
Объяснение: нельзя грабить первый и третий дома, так как они соседние.

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

Решение задачи
👍4🔥2
Является ли строка палиндромом

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

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

Задача - вернуть true, если строка палиндром, false - в противном случае.

Пример:

Ввод: s = "A man, a plan, a canal: Panama"
Вывод: true
Объяснение: "amanaplanacanalpanama" является палиндромом.

Ввод: s = "race a car"
Вывод: false
Объяснение: "raceacar" не является палиндромом.

Ввод: s = " "
Вывод: true
Объяснение: s - пустая строка "" после удаления всех знаков препинания и пробелов.
Так как пустая строка читается одинаково в обоих направлениях, то она является палиндромом.

Решение задачи
👍8
Топ k наиболее часто встречающихся элементов

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

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

Гарантируется, что ответ уникальный. То есть несколько элементов не могут встречаться одинаковое количество раз.

Пример:

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

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

Решение задачи
👍2
Поедание бананов

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

Условие задачи: обезьяна Коко любит есть бананы. Есть n связок бананов, где i-ая связка содержит piles[i] бананов. Смотритель зоопарка же ушел и вернется через h часов.

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

Коко кушает медленно, но уверенно: обезьяна нацелена на съедение всех бананов до возвращения смотрителя.

Необходимо вычислить минимальное число k, такое что все бананы будут съедены за h часов.

Пример:

Ввод: piles = [3,6,7,11], h = 8
Вывод: 4

Ввод: piles = [30,11,23,4,20], h = 5
Вывод:
30

Решение задачи
👍6
Уникальные бинарные деревья поиска

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

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

Пример:

Ввод: n = 3
Вывод: 5
Объяснение:

Ввод: n = 1
Вывод:
1

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

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

Условие задачи: дан массив, сдвинутый относительно опорного элемента, который неизвестен ( массив после сдвига относительно опорного элемента имеет следующий вид: [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]])

Массив [0,1,2,4,5,6,7], имея опорный элемент 3, будет выглядеть следующим образом: [4,5,6,7,0,1,2].

Необходимо осуществить поиск целевого элемента в сдвинутом массиве, определив его индекс, или же вывести -1 при его отсутствии.

Решение должно быть за O(log n) по времени.

Пример:

Ввод:
nums = [4,5,6,7,0,1,2], target = 0
Вывод:
4

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

Решение задачи
👍3
Палиндром наибольшей длины, полученный с помощью соединений из слов, состоящих из двух букв

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

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

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

В ответе надо вернуть длину такого палидрома.

Палиндром - строка, одинаково читающаяся в обоих направлениях.

Пример:

Ввод:
words = ["lc","cl","gg"]
Вывод: 6
Объяснение: lc" + "gg" + "cl" = "lcggcl" или же "clgglc", но оба имеют максимальную длину 6.

Ввод: words = ["ab","ty","yt","lc","cl","ab"]
Вывод: 8
Объяснение: "ty" + "lc" + "cl" + "yt" = "tylcclyt" или "lcyttycl"

Ввод: words = ["cc","ll","xx"]
Вывод: 2

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

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

Условие задачи: дан двумерный массив, представляющий из себя изоражение, необходимо провращать данное изображение на 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]]

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