Наиближайшая сумма трёх
Сложность: Средняя
Условие задачи: дан целочисленный массив и целевое значение суммы. Необходимо найти три числа из массива, которые либо в результате суммирования равны значению целевой суммы либо же максимально близки к ней по модулю.
Каждый массив имеет единственное решение.
Пример:
Ввод:
Вывод:
Объяснение:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дан целочисленный массив и целевое значение суммы. Необходимо найти три числа из массива, которые либо в результате суммирования равны значению целевой суммы либо же максимально близки к ней по модулю.
Каждый массив имеет единственное решение.
Пример:
Ввод:
nums = [-1,2,1,-4], target = 1Вывод:
2Объяснение:
(-1 + 2 + 1 = 2)Ввод:
nums = [0,0,0], target = 1Вывод:
0Решение задачи
👍1
Проверка схожести половин строки
Сложность: Лёгкая
Условие задачи: на вход подается строка четной длины. Далее проводится разделение на две равные части.
Две строки называются схожими, если в них находится одно и то же количество гласных вне зависимости от регистра.
Необходимо проверить схожесть двух строк, полученных разбиением по середине.
Пример:
Ввод: s = "book"
Вывод: true
Решение задачи
Сложность: Лёгкая
Условие задачи: на вход подается строка четной длины. Далее проводится разделение на две равные части.
Две строки называются схожими, если в них находится одно и то же количество гласных вне зависимости от регистра.
Необходимо проверить схожесть двух строк, полученных разбиением по середине.
Пример:
Ввод: s = "book"
Вывод: true
Решение задачи
👍1
Максимальное скользящее
Сложность: Тяжёлая
Условие задачи: дан целочисленный массив, а также размер k подмассива, начинающегося от левой границы, и заканчивающегося в процессе выполнения алгоритма у правой границы. На каждом шаге можно просматривать k последовательных элементов скользящего массива. На каждом шаге надо определить максимальное значение скользящего.
Пример:
Ввод:
Вывод:
Объяснение:
Скользящее на каждой итерации
Ввод:
Вывод:
Решение задачи
Сложность: Тяжёлая
Условие задачи: дан целочисленный массив, а также размер k подмассива, начинающегося от левой границы, и заканчивающегося в процессе выполнения алгоритма у правой границы. На каждом шаге можно просматривать k последовательных элементов скользящего массива. На каждом шаге надо определить максимальное значение скользящего.
Пример:
Ввод:
nums = [1,3,-1,-3,5,3,6,7], k = 3Вывод:
[3,3,5,5,6,7]Объяснение:
Скользящее на каждой итерации
Max
-------------------------- -----
[1 3 -1] -3 5 3 6 7 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7Ввод:
nums = [1], k = 1Вывод:
[1]Решение задачи
👍4
Столбцы таблицы Excel
Сложность: Лёгкая
Условие задачи: на вход подается номер столбца, необходимо конвертировать его в буквенное представление, которое будет использоваться в таблице-Excel.
Пример:
Ввод:columnNumber = 1
Вывод: "A"
Ввод: columnNumber = 28
Вывод: "AB"
Решение задачи
Сложность: Лёгкая
Условие задачи: на вход подается номер столбца, необходимо конвертировать его в буквенное представление, которое будет использоваться в таблице-Excel.
Пример:
Ввод:columnNumber = 1
Вывод: "A"
Ввод: columnNumber = 28
Вывод: "AB"
Решение задачи
👍2
Максимальное количество сумок, полностью заполненных камнями
Сложность: Средняя
Условие задачи: дается n-сумок, пронумерованных с нуля. Дается также два массива, проиндексированных аналогичным образом: capacity и rocks. i-а сумка может вмещать capacity[i] камней и в текущий момент содержит уже rocks[i] каменей. Помимо этого дается еще additionalRocks, число камней, которые можно добавить в произвольную сумку.
Необходимо вычислить максимальное количество сумок, которое получится при ситуации, когда все дополнительные камни размещены.
Пример:
Ввод:
Вывод:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дается n-сумок, пронумерованных с нуля. Дается также два массива, проиндексированных аналогичным образом: capacity и rocks. i-а сумка может вмещать capacity[i] камней и в текущий момент содержит уже rocks[i] каменей. Помимо этого дается еще additionalRocks, число камней, которые можно добавить в произвольную сумку.
Необходимо вычислить максимальное количество сумок, которое получится при ситуации, когда все дополнительные камни размещены.
Пример:
Ввод:
capacity = [2,3,4,5], rocks = [1,2,4,4], additionalRocks = 2Вывод:
3Ввод:
capacity = [10,2,2], rocks = [2,2,0], additionalRocks = 100Вывод:
3Решение задачи
👍2
Раскладка костей
Сложность: Средняя
Условие задачи: есть два типа костей: типа domino и типа tromino.
Дается целое число n, необходимо вычислить количество комбинаций чтобы выложить поле размером 2 x n при помощи двух типов костей.
При укладке плитки каждый квадрат должен быть покрыт плиткой. Две плитки различны тогда и только тогда, когда на доске есть две смежные в 4 направлениях ячейки, такие, что ровно в одной из плиток оба квадрата заняты плиткой.
Пример:
Ввод: n = 3
Вывод: 5
Объяснение: *во вложении
Решение задачи
Сложность: Средняя
Условие задачи: есть два типа костей: типа domino и типа tromino.
Дается целое число n, необходимо вычислить количество комбинаций чтобы выложить поле размером 2 x n при помощи двух типов костей.
При укладке плитки каждый квадрат должен быть покрыт плиткой. Две плитки различны тогда и только тогда, когда на доске есть две смежные в 4 направлениях ячейки, такие, что ровно в одной из плиток оба квадрата заняты плиткой.
Пример:
Ввод: n = 3
Вывод: 5
Объяснение: *во вложении
Решение задачи
👍1
Идеальное число
Сложность: Лёгкая
Условие задачи: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.
Необходимо проверить входное число на идеальность.
Пример:
Ввод: num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14
Ввод: num = 7
Вывод: false
Решение задачи
Сложность: Лёгкая
Условие задачи: идеальное число - это положительное целое число, которое равно сумме делителей этого же числа, за исключением самого числа.
Необходимо проверить входное число на идеальность.
Пример:
Ввод: num = 28
Вывод: true
Объяснение: 28 = 1 + 2 + 4 + 7 + 14
Ввод: num = 7
Вывод: false
Решение задачи
👍3
Минимальное количество ребер
Сложность: Средняя
Условие задачи: дается ациклический направленный граф с вершинами, пронумерованными от 0 до n-1.
Необходимо найти наименьшее количество ребер в графе такое что, можно было бы обойти все узлы.
Пример:
Ввод: n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]
Вывод: [0,3]
Объяснение: *во вложении
Решение задачи
Сложность: Средняя
Условие задачи: дается ациклический направленный граф с вершинами, пронумерованными от 0 до n-1.
Необходимо найти наименьшее количество ребер в графе такое что, можно было бы обойти все узлы.
Пример:
Ввод: n = 6, edges = [[0,1],[0,2],[2,5],[3,4],[4,2]]
Вывод: [0,3]
Объяснение: *во вложении
Решение задачи
👍1
Разворот строки II
Сложность: Лёгкая
Условие задачи: дается строка и целое число k, необходимо развернуть первые k символов на каждые 2k символов, отсчитываемых с начала.
Если есть несколько символов больших k, необходимо развернуть все из них. Если есть меньше, чем 2k символов, но при этом больше или равно k символов, то необходимо оставить все как есть.
Пример:
Ввод: s = "abcdefg", k = 2
Вывод: "bacdfeg"
Ввод: s = "abcd", k = 2
Вывод: "bacd"
Решение задачи
Сложность: Лёгкая
Условие задачи: дается строка и целое число k, необходимо развернуть первые k символов на каждые 2k символов, отсчитываемых с начала.
Если есть несколько символов больших k, необходимо развернуть все из них. Если есть меньше, чем 2k символов, но при этом больше или равно k символов, то необходимо оставить все как есть.
Пример:
Ввод: s = "abcdefg", k = 2
Вывод: "bacdfeg"
Ввод: s = "abcd", k = 2
Вывод: "bacd"
Решение задачи
👍3
Количество возрастающих подпоследовательностей наибольшей длины
Сложность: Средняя
Условие задачи: дан массив целых чисел, надо посчитать количество возрастающих подпоследовательностей наибольшей длины. Подпоследовательность (ее элементы) должна строго возрастать.
Пример:
Ввод:
Вывод:
Объяснение: есть две возрастающие подпоследовательности одинаковой длины:
Ввод:
Вывод:
Объяснение: в данном массиве есть 5 подпоследовательностей длины 1.
Решение задачи
Сложность: Средняя
Условие задачи: дан массив целых чисел, надо посчитать количество возрастающих подпоследовательностей наибольшей длины. Подпоследовательность (ее элементы) должна строго возрастать.
Пример:
Ввод:
nums = [1,3,5,4,7]Вывод:
2Объяснение: есть две возрастающие подпоследовательности одинаковой длины:
[1, 3, 4, 7] и [1, 3, 5, 7]Ввод:
nums = [2,2,2,2,2]Вывод:
5Объяснение: в данном массиве есть 5 подпоследовательностей длины 1.
Решение задачи
👍1
Наидлиннейший общий префикс
Сложность: Лёгкая
Условие задачи: дан массив, состоящий из строк, надо найти общий префикс максимальной длины.
Пример:
Ввод:
Вывод:
Ввод:
Вывод:
Объяснение: в данных строках нет общего префикса
Решение задачи
Сложность: Лёгкая
Условие задачи: дан массив, состоящий из строк, надо найти общий префикс максимальной длины.
Пример:
Ввод:
strs = ["flower","flow","flight"]Вывод:
"fl"Ввод:
strs = ["dog","racecar","car"]Вывод:
""Объяснение: в данных строках нет общего префикса
Решение задачи
👍5
Является ли строка подпоследовательностью
Сложность: Лёгкая.
Условие задачи: даны две строки s и t, верните true, если s - подпоследовательность строки t, false - в ином случае.
Подпоследовательностью является строка, полученная из исходной строки путем удаления символов без изменения поряжка следования символов.
Пример:
Ввод:
Сложность: Лёгкая.
Условие задачи: даны две строки s и t, верните true, если s - подпоследовательность строки t, false - в ином случае.
Подпоследовательностью является строка, полученная из исходной строки путем удаления символов без изменения поряжка следования символов.
Пример:
Ввод:
s = "abc", t = "ahbgdc"
Вывод: true
Ввод: s = "axc", t = "ahbgdc"
Вывод: false
Решение задачи👍2
Мокрые бандиты
Сложность: Средняя
Условие задачи: Мы - профессиональные грабители, обчищающие дома под Рождество и в каждом ограбленном нами доме оставляем характерный символ: невыключенный кран с водой.
Перед нами стоит задача: ограбить на максимальную сумму дома, находящиеся на проспекте Линкольна, но у данных домов есть характерная черта: при ограбление соседних домов срабатывает сигнализация, вызывающая полицию.
Нам необходимо выяснить какие дома надо ограбить, чтобы получить максимальный куш.
Пример:
Ввод:
Сложность: Средняя
Условие задачи: Мы - профессиональные грабители, обчищающие дома под Рождество и в каждом ограбленном нами доме оставляем характерный символ: невыключенный кран с водой.
Перед нами стоит задача: ограбить на максимальную сумму дома, находящиеся на проспекте Линкольна, но у данных домов есть характерная черта: при ограбление соседних домов срабатывает сигнализация, вызывающая полицию.
Нам необходимо выяснить какие дома надо ограбить, чтобы получить максимальный куш.
Пример:
Ввод:
nums = [1,2,3,1]
Вывод: 4
Объяснение: Грабим 1-ый дом (money = 1), а после навещаем 3-ий дом (money = 3).
Суммарный куш: 1 + 3 = 4.
Решение задачи👍4
Монетообменик
Сложность: Средняя
Условие задачи: дается массив, состоящий измонет определенного номинала, а также целевое значение суммы.
Необходимо высчитать наименьшее количество монет, которыми можно получить необходимую сумму или вернуть -1 в случае невозможности.
Количество монет не ограничено.
Пример:
Ввод:
Вывод:
Объяснение:
Ввод:
Вывод:
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дается массив, состоящий измонет определенного номинала, а также целевое значение суммы.
Необходимо высчитать наименьшее количество монет, которыми можно получить необходимую сумму или вернуть -1 в случае невозможности.
Количество монет не ограничено.
Пример:
Ввод:
coins = [1,2,5], amount = 11Вывод:
3Объяснение:
11 = 5 + 5 + 1Ввод:
coins = [2], amount = 3Вывод:
-1Ввод:
coins = [1], amount = 0Вывод:
0Решение задачи
👍3
Расшифровка строки
Сложность: Средняя
Условие задачи: дана строка в формате: k[encoded_string], где k - число повторений зашифрованной строки. Необходимо вывести результирующую строку, которая соответствует расшифровке исходной строки.
Пример:
Ввод: s = "3[a]2[bc]"
Вывод: "aaabcbc"
Ввод:
Вывод:
Решение задачи
Сложность: Средняя
Условие задачи: дана строка в формате: k[encoded_string], где k - число повторений зашифрованной строки. Необходимо вывести результирующую строку, которая соответствует расшифровке исходной строки.
Пример:
Ввод: s = "3[a]2[bc]"
Вывод: "aaabcbc"
Ввод:
s = "3[a2[c]]"Вывод:
"accaccacc"Решение задачи
👍10
Связный список-палидром
Сложность: Лёгкая
Условие задачи: дан связный список, необходимо осуществить проверку на то являтеся ли он палиндромом или же нет?
Пример:
Ввод:
Вывод:
Ввод:
Вывод:
Решение задачи
Сложность: Лёгкая
Условие задачи: дан связный список, необходимо осуществить проверку на то являтеся ли он палиндромом или же нет?
Пример:
Ввод:
head = [1,2,2,1]Вывод:
trueВвод:
head = [1,2]Вывод:
falseРешение задачи
👍5
Расписание дел
Сложность: Средняя
Условие задачи: дан массив задач, которые надо выполнить (одинаковые буквы означабт одинаковые задачи). И дан временной интрвал, в течение которого нельзя выполнять две одинаковые задачи. В случае невозможности выполнить их в течение заданного времени, компьютер ожидает количество времени (обозначается idle), нужное чтобы уложиться во временной интервал.
Задача выполняется каждую минуту, необходимо вывести наименьшее количество минут ожидания для выполнения всех задач.
Пример:
Ввод:
Объяснение:
Ввод:
Объяснение:
Сложность: Средняя
Условие задачи: дан массив задач, которые надо выполнить (одинаковые буквы означабт одинаковые задачи). И дан временной интрвал, в течение которого нельзя выполнять две одинаковые задачи. В случае невозможности выполнить их в течение заданного времени, компьютер ожидает количество времени (обозначается idle), нужное чтобы уложиться во временной интервал.
Задача выполняется каждую минуту, необходимо вывести наименьшее количество минут ожидания для выполнения всех задач.
Пример:
Ввод:
tasks = ["A","A","A","B","B","B"], n = 2
Вывод: 8Объяснение:
A -> B -> idle -> A -> B -> idle -> A -> B
Ввод: tasks = ["A","A","A","B","B","B"], n = 0
Вывод: 6Ввод:
tasks = ["A","A","A","A","A","A","B","C","D","E","F","G"],
n = 2
Вывод: 16Объяснение:
A -> B -> C -> A -> D -> E -> A -> F -> G -> A -> idle -> idle -> A -> idle -> idle -> A
Решение задачи👍3
Одно редактирование
Сложность задачи: Средняя
Условие задачи:
Даны две строки s и t. Требуется вернуть true, если обе они находятся на расстоянии редактирования друг от друга, в противном случае вернуть false.
Говорят, что строка s находится на расстоянии редактирования от строки t, если вы можете:
• Вставить ровно один символ в s, чтобы получить t.
• Удалить ровно один символ из s, чтобы получить t.
• Заменить ровно один символ s другим символом, чтобы получить t.
Пример:
Ввод:
Ввод:
Сложность задачи: Средняя
Условие задачи:
Даны две строки 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 - неотрицательное число.
Пример:
Ввод:
Сложность: Средняя
Условие задачи: дан массив, необходимо сместить массив на 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-наиболее частых элементов.
При одинаковом количестве появлений нескольких слов, необходимо отсортировать данные слова в лексикографическом порядке.
Пример:
Ввод:
Объяснение:
Ввод:
Решение задачи
Сложность: Средняя
Условие задачи: дан массив строк, необходимо вернуть 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