LeetCode Community
9.77K 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 мы говорим "t делит s" тогда и только тогда, когда s = t + ... + t (т.е. t объединяется с самим собой один или несколько раз).

Дается две строки str1 и str2, верните самую большую строку x, такую, что x делит как str1, так и str2.

Пример:

Ввод:
str1 = "ABCABC", str2 = "ABC"
Вывод: "ABC"

Ввод: str1 = "ABABAB", str2 = "ABAB"
Вывод: "AB"

Решение задачи
1👍1🔥1
Международная азбука Морзе

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

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

"a" соответствует ".-",
"b" соответствует "-...",
"c" соответствует "-.-." и так далее.
Для удобства ниже приведена полная таблица для 26 букв английского алфавита:

[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
Дан массив строк words, где каждое слово может быть записано как объединение азбуки Морзе каждой буквы.

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

Пример:

Ввод:
words = ["gin","zen","gig","msg"]
Вывод: 2

Объяснение:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."

Ввод:
words = ["a"]
Вывод: 1

Решение задачи
1👍1
Среднее по уровню

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

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

Пример:

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

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

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

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

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

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

Пример:

Ввод:
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
Путь минимальной суммы

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

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

Двигаться можно лишь вправо и вниз.

Пример:

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

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

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

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

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

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

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

Пример:

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


Решение задачи
👍1
Сводные диапазоны

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

Условие задачи: дается массив из уникальных целых чисел цисел. Срез [a,b] - включает в себя множество значений из данного отрезка включительно.

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

• "a->b" if a != b
• "a" if a == b

Пример:

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

Объяснение:
[0,2] --> "0->2"
[4,5] --> "4->5"
[7,7] --> "7"

Ввод:
nums = [0,2,3,4,6,8,9]
Вывод:
["0","2->4","6","8->9"]

Решение задачи
👍2
DeepSeek — самая мощная нейросеть в мире? Честно сравним и разберемся на примерах вместе с Кириллом Пшинником, СЕО университета Зерокодер.

⚡️Что ждет вас на вебинаре?

— Сравним DeepSeek-R1 и QWEN 2.5-Max с ChatGPT – кто быстрее, точнее и эффективнее?
— Покажем, как использовать DeepSeek без ограничений и блокировок;
— Разберем, как можно зарабатывать на нейросетях и какие вакансии будут востребованы в 2025 году.

👉 Регистрируйтесь прямо сейчас
Все участники получат готовые инструменты для работы с нейросетями. Эфир подойдет всем, кто хочет сэкономить время, монетизировать навыки и оставаться в тренде технологий 2025 года.

PS: Это первый полноценный практикум от экспертов по DeepSeek. Узнайте и погрузитесь в революционные изменения AI сферы по ссылке.

erid: 2W5zFJph6it
ООО Зерокодер, ИНН 9715401631
Конструирование прямоугольника

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

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

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

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

Пример:

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

Ввод:
area = 122122
Вывод: [427,286]

Решение задачи
👍1
Нахождение вершины списка

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

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

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

Алгоритм должен иметь временную сложность O (log n).

Пример:

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

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

Решение задачи
👍1
Монотонное увеличение

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

Условие задачи: бинарная строка монотонно увеличивается, если она состоит из некоторого числа 0 (возможно, ни одного), за которым следует некоторое количество 1 (также возможно, ни одного).

Дана двоичная строка s. Вы можете перевернуть [i], изменив его с 0 на 1 или с 1 на 0.

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

Пример:

Ввод:
s = "00110"
Вывод: 1
Объяснение: 00111

Ввод: s = "010110"
Вывод: 2

Решение задачи
👍1
Количество узлов

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

Условие задачи: дано дерево (т.е. связный неориентированный граф, не имеющий циклов), состоящее из n узлов с числом от 0 до n - 1 и ровно n - 1 ребер. Корнем дерева является узел 0, и каждый узел дерева имеет метку, которая представляет собой символ нижнего регистра, указанный в строковых метках (т.е. узел с номером i имеет метку labels[i]).

Массив ребер задан на ребрах фермы[i] = [ai, bi], что означает наличие ребра между узлами ai и bi в дереве.

Возвращает массив размера n, где и[i] - количество узлов в поддереве узла земли, которые имеют ту же метку, что и узел i.

Поддерево дерева - это дерево, состоящее из узла в T и всех его дочерних узлов.

Пример:

Ввод:
n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = "abaedcd"
Вывод: [2,1,1,1,1,1,1]
Объяснение:

Ввод:
n = 4, edges = [[0,1],[1,2],[0,3]], labels = "bbbb"
Вывод: [4,2,1,1]

Решение задачи
2👍1👎1
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
👎2👍1
Наименьшая лексикографически схожая строка

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

Условие задачи: даны две строки одинаковой длины s1 и s2 и строка baseStr.

Говорим, что s1[i] и s2[i] являются эквивалентными символами.

Например, если s1 = "abc" и s2 = "cde", то мы имеем 'a' == 'c', 'b' == 'd' и 'c' == 'e'.
Эквивалентные символы следуют обычным правилам отношения эквивалентности:

Рефлексивность: 'a' == 'a'.
Симметрия: 'a' == 'b' подразумевает 'b' == 'a'.
Транзитивность: 'a' == 'b' и 'b' == 'c' подразумевает 'a' == 'c'.
Например, учитывая информацию об эквивалентности из s1 = "abc" и s2 = "cde", "cd" и "ab" являются эквивалентными строками базового Str = "eed", а "aab" является лексикографически наименьшей эквивалентной строкой базового str.

Верните лексикографически наименьшую эквивалентную строку базового Str, используя информацию об эквивалентности из s1 и s2.

Пример:

Ввод:
s1 = "parker", s2 = "morris", baseStr = "parser"
Вывод: "makkek"

Ввод: s1 = "hello", s2 = "world", baseStr = "hold"
Вывод: "hdld"

Решение задачи
👍2
Количество провинций

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

Условие задачи: даётся n провинций, какие-то из них соединены между собой, какие-то нет, также соблюдается правило транзитивности: если провинция «1» соединена с провинцией «2», а «2» соединена с «3» провинцией, то и «1» соединена с «3».

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

На вход даётся квадратичная матрица, в которой isConnected[i][j] = 1 - соединение между i - ым и j - - ым населенными пунктами (1 - имеется соединение, 0 - отсутствует).

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

Пример:

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

Решение задачи
👍2
Проверка соответствия строк в двух списках

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

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

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

Пример:

Ввод:
word1 = ["ab", "c"], word2 = ["a", "bc"]
Вывод: true

Объяснение:
word1: "ab" + "c" -> "abc"
word2: "a" + "bc" -> "abc"

Ввод: word1 = ["a", "cb"], word2 = ["ab", "c"]
Вывод: false

Решение задачи
👍1
K-ый наибольший элемент

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

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

Класс содержит следующие методы:

- KthLargest(int k, int[] nums) иниициализирует класс;
- int add(int val) добавляет элемент в спискок и возвращает k-ый наименьший согласно условию.

Пример:

Ввод:
["KthLargest", "add", "add", "add", "add", "add"]
[[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]]

Вывод:
[null, 4, 5, 5, 8, 8]
Объяснение:

KthLargest kthLargest = new KthLargest(3, [4, 5, 8, 2]);
kthLargest.add(3); // return 4
kthLargest.add(5); // return 5
kthLargest.add(10); // return 5
kthLargest.add(9); // return 8
kthLargest.add(4); // return 8


Решение задачи
👍1
Сумма тропы в дереве II

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

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

Пример:

Ввод:
root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
Вывод:
[[5,4,11,2],[5,8,4,5]]
Объяснение:
* голубые узлы на изображении


Решение задачи
👍21
Максимальное скользящее

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

Условие задачи: дан целочисленный массив, а также размер 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]

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

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

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

Пример:

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

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