Python | LeetCode
Відкрити в Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Показати більше9 172
Підписники
-524 години
-97 днів
-6630 день
Триває завантаження даних...
Схожі канали
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
серпень '26
серпень '26
+41
в 1 каналах
липень '26
+36
в 0 каналах
Get PRO
червень '26
+44
в 2 каналах
Get PRO
травень '26
+40
в 0 каналах
Get PRO
квітень '26
+47
в 0 каналах
Get PRO
березень '26
+50
в 0 каналах
Get PRO
лютий '26
+42
в 0 каналах
Get PRO
січень '26
+69
в 0 каналах
Get PRO
грудень '25
+55
в 0 каналах
Get PRO
листопад '25
+105
в 0 каналах
Get PRO
жовтень '25
+110
в 0 каналах
Get PRO
вересень '25
+67
в 0 каналах
Get PRO
серпень '25
+112
в 1 каналах
Get PRO
липень '25
+128
в 4 каналах
Get PRO
червень '25
+129
в 2 каналах
Get PRO
травень '25
+166
в 3 каналах
Get PRO
квітень '25
+178
в 0 каналах
Get PRO
березень '25
+217
в 3 каналах
Get PRO
лютий '25
+343
в 6 каналах
Get PRO
січень '25
+307
в 53 каналах
Get PRO
грудень '24
+150
в 0 каналах
Get PRO
листопад '24
+174
в 0 каналах
Get PRO
жовтень '24
+725
в 15 каналах
Get PRO
вересень '24
+3 750
в 329 каналах
Get PRO
серпень '24
+260
в 0 каналах
Get PRO
липень '24
+2 514
в 219 каналах
Get PRO
червень '24
+3 546
в 232 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 26 серпня | 0 | |||
| 25 серпня | 0 | |||
| 24 серпня | +4 | |||
| 23 серпня | +1 | |||
| 22 серпня | +3 | |||
| 21 серпня | +3 | |||
| 20 серпня | +3 | |||
| 19 серпня | +5 | |||
| 18 серпня | +1 | |||
| 17 серпня | +2 | |||
| 16 серпня | 0 | |||
| 15 серпня | +3 | |||
| 14 серпня | +2 | |||
| 13 серпня | +1 | |||
| 12 серпня | +1 | |||
| 11 серпня | +2 | |||
| 10 серпня | +1 | |||
| 09 серпня | 0 | |||
| 08 серпня | +2 | |||
| 07 серпня | 0 | |||
| 06 серпня | 0 | |||
| 05 серпня | +1 | |||
| 04 серпня | +2 | |||
| 03 серпня | +2 | |||
| 02 серпня | +1 | |||
| 01 серпня | +1 |
Дописи каналу
Вебинар: Как Python-разработчику получить оффер в бигтех
Увидишь, где ошибаются даже сильные инженеры.
Поймёшь, как нанимающие инженеры читают код.
Получишь готовый фреймворк для разбора любого сервиса — применимый и на интервью, и в ежедневном code review.
Узнаешь, какие soft skills критичны для роста в Senior+.
Спикер: Хачатур Саркисян, Senior Python разработчик в Яндексе.
Участие — бесплатно.
Зарегистрироваться
#реклама 16+
web.shortcut.education
О рекламодателе
| 2 | Задача: 1060. Missing Element in Sorted Array
Сложность: medium
Если задан целочисленный массив nums, который отсортирован по возрастанию и все его элементы уникальны, а также задано целое число k, верните k-е недостающее число, начиная с самого левого номера массива.
Пример:
Input: nums = [4,7,9,10], k = 1
Output: 5
👨💻 Алгоритм:
1⃣Инициализация переменных:
Задать счетчик недостающих чисел и текущее значение, которое будет проверяться на отсутствие в массиве.
Установить указатель для обхода массива.
2⃣Поиск недостающих чисел:
Проходить по массиву, начиная с первого числа, и для каждого значения проверять, является ли текущее значение недостающим.
Увеличивать счетчик недостающих чисел, если текущее значение отсутствует в массиве.
Продолжать проверку до тех пор, пока не будет найдено k-е недостающее число.
3⃣Возвращение результата:
Вернуть k-е недостающее число после нахождения его.
😎 Решение:
def findKthMissing(nums, k):
missing_count = 0
current = nums[0]
index = 0
while True:
if index < len(nums) and nums[index] == current:
index += 1
else:
missing_count += 1
if missing_count == k:
return current
current += 1
Ставь 👍 и забирай 📚 Базу знаний | 211 |
| 3 | Задача: №45. Jump Game II
Сложность: medium
Вам предоставляется массив целых чисел nums с индексом 0 и длиной n. Изначально вы располагаетесь в nums[0].
Каждый элемент nums[i] представляет максимальную длину прямого перехода от индекса i.
Возвращает минимальное количество переходов для достижения nums[n - 1].
Пример:
Input: nums = [2,3,1,1,4]
Output: 2
👨💻 Алгоритм:
1️⃣Используем BFS-подход с отслеживанием границ уровня.
2️⃣На каждой итерации обновляем самую дальнюю достижимую позицию.
3️⃣Когда текущий уровень заканчивается, увеличиваем счетчик прыжков и переходим на новый уровень.
😎 Решение:
class Solution:
def jump(self, nums):
jumps = 0
farthest = 0
current_end = 0
for i in range(len(nums) - 1):
farthest = max(farthest, i + nums[i])
if i == current_end:
jumps += 1
current_end = farthest
return jumps
Ставь 👍 и забирай 📚 Базу знаний | 311 |
| 4 | Подготовка к вступительным экзаменам в ШАД
120+ поступивших в ШАД. Преподаватели МГУ. Гарантия результата. Вы поступите в ШАД, магистратуру или мы зачислим Вас на следующий поток бесплатно
Узнать больше
#реклама 16+
shadhelper.com
О рекламодателе | 423 |
| 5 | Пожизненный PRO доступ на easyoffer — по цене одного года!
До 2 сентября вы можете купить PRO навсегда.
Покупаешь один раз — пользуешься всю жизнь.
– База вопросов и задач из собеседований
– Примеры видео-ответов на вопросы
– Записи реальных собеседований
– Тренажеры "Проработка вопросов" и "Реальное собеседование"
– Аналитика требований из вакансий
– Автоотклики на вакансии
– Агрегатор вакансий (скоро)
👉 Купить PRO со скидкой 70%: https://easyoffer.ru/pro | 418 |
| 6 | Задача: 1361. Validate Binary Tree Nodes
Сложность: easy
У вас есть n узлов бинарного дерева, пронумерованных от 0 до n-1, где узел i имеет двух детей: leftChild[i] и rightChild[i]. Верните true, если и только если все заданные узлы образуют ровно одно допустимое бинарное дерево.
Если у узла i нет левого ребенка, то leftChild[i] будет равен -1, аналогично для правого ребенка.
Обратите внимание, что узлы не имеют значений и мы используем только номера узлов в этой задаче.
Пример:
Input: n = 4, leftChild = [1,-1,3,-1], rightChild = [2,-1,-1,-1]
Output: true
👨💻 Алгоритм:
1⃣Проверка количества родителей для каждого узла:
Создайте массив для отслеживания количества родителей для каждого узла. Проходите через leftChild и rightChild, увеличивая счетчик для каждого ребенка. Если какой-либо узел имеет более одного родителя, возвращайте false.
2⃣Поиск корневого узла и проверка на единственное дерево:
Найдите корневой узел (узел с нулевым количеством родителей). Если корневых узлов нет или больше одного, верните false. Используйте BFS или DFS, чтобы проверить, что все узлы достижимы от корня и что нет циклов.
3⃣Проверка на достижение всех узлов:
Проверьте, что количество посещенных узлов равно n. Если нет, верните false. В противном случае, верните true.
😎 Решение:
class Solution:
def validateBinaryTreeNodes(self, n: int, leftChild: List[int], rightChild: List[int]) -> bool:
parents = [0] * n
for i in range(n):
if leftChild[i] != -1:
parents[leftChild[i]] += 1
if parents[leftChild[i]] > 1:
return False
if rightChild[i] != -1:
parents[rightChild[i]] += 1
if parents[rightChild[i]] > 1:
return False
root = -1
for i in range(n):
if parents[i] == 0:
if root == -1:
root = i
else:
return False
if root == -1:
return False
visited = set()
queue = [root]
while queue:
node = queue.pop(0)
if node in visited:
return False
visited.add(node)
if leftChild[node] != -1:
queue.append(leftChild[node])
if rightChild[node] != -1:
queue.append(rightChild[node])
return len(visited) == n
Ставь 👍 и забирай 📚 Базу знаний | 374 |
| 7 | 🔍Тестовое собеседование на Middle Python с разработчиком из Яндекса завтра вечером
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Хачатур, старший разработчик в Яндексе, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Хачатур будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Хачатуру
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе. | 440 |
| 8 | Выпусти трек без головной боли — мы всё сделаем за тебя!
«От загрузки до первых прослушиваний» — поможем продвинуть музыку! Твой путь здесь!
Начать
#реклама
sferoom.space
О рекламодателе | 488 |
| 9 | Задача: 152. Maximum Product Subarray
Сложность: Medium
Дан массив целых чисел nums. Найдите подмассив, который имеет наибольший произведение, и верните это произведение.
Тестовые случаи созданы таким образом, что ответ поместится в 32-битное целое число.
Пример:
Input: nums = [2,3,-2,4]
Output: 6
Explanation: [2,3] has the largest product 6.
👨💻 Алгоритм:
1️⃣Инициализация: Если массив nums пуст, возвращаем 0, так как нет элементов для обработки. Инициализируем переменную result первым элементом массива, чтобы иметь начальную точку сравнения для нахождения максимального произведения.
2️⃣Перебор элементов: Используем вложенные циклы для обработки всех возможных подмассивов: Внешний цикл i начинается с начала массива и определяет начальную точку каждого подмассива. Внутренний цикл j начинается с индекса i и идет до конца массива, последовательно умножая элементы и расширяя рассматриваемый подмассив.
3️⃣Вычисление произведения и обновление результата: Для каждой итерации внутреннего цикла умножаем текущий элемент nums[j] на аккумулирующую переменную accu и проверяем, не стало ли текущее произведение больше максимального найденного до этого. Обновляем переменную result, если текущее произведение accu превышает текущее максимальное значение result.
😎 Решение:
class Solution:
def maxProduct(self, nums: List[int]) -> int:
if len(nums) == 0:
return 0
result = nums[0]
for i in range(len(nums)):
accu = 1
for j in range(i, len(nums)):
accu *= nums[j]
result = max(result, accu)
return result
Ставь 👍 и забирай 📚 Базу знаний | 477 |
| 10 | Зарабатывайте на установках Яндекс Браузера
Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей.
Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках.
Выплаты до 500₽ за каждую установку Яндекс Браузера.
Подать заявку
#реклама 0+
partner.browser.yandex.ru
О рекламодателе | 458 |
| 11 | Задача: 215. Kth Largest Element in an Array
Сложность: medium
Дан целочисленный массив nums и целое число k. Верните k-й наибольший элемент в массиве.
Обратите внимание, что это k-й наибольший элемент в отсортированном порядке, а не k-й уникальный элемент.
Пример:
Input: nums = [3,2,3,1,2,4,5,5,6], k = 4
Output: 4
👨💻 Алгоритм:
1️⃣ Отсортируйте массив в порядке убывания:
Используйте стандартную функцию сортировки для сортировки элементов массива nums в порядке убывания. В этом случае самый большой элемент будет первым в массиве, второй по величине - вторым и так далее.
2️⃣ Найдите k-й по величине элемент:
После сортировки просто верните элемент, который стоит на позиции k-1 (учитывая, что индексация в массиве начинается с 0).
3️⃣ Верните результат:
Возвратите найденное значение как результат.
😎 Решение:
class Solution:
def findKthLargest(self, nums, k):
nums.sort(reverse=True)
return nums[k - 1]
Ставь 👍 и забирай 📚 Базу знаний | 508 |
| 12 | Откройте для себя Абу-Даби
Абу-Даби оживает в самом сердце Москвы: пятидневное культурное путешествие: иммерсивные технологии, живая эмиратская музыка, традиционные ремёсла и наследие.
Манежная площадь, 19-23 августа.
Узнать больше
#реклама 16+
visitabudhabi.ae
О рекламодателе | 505 |
| 13 | Битрикс24 представил Коворк/Код
Ключевое:
• Помнит рабочий контекст месяцами благодаря технологии Радиант: связывает задачи, сделки, переписку и файлы в единую картину, замечает риски и подсказывает следующий шаг — не нужно каждый раз объяснять, о каком клиенте или проекте речь;
• Выполняет несколько задач параллельно — помогает ускорить рабочий процесс в разы;
• В режиме Коворк выполняет рабочие поручения, в режиме Код создает приложения под ваши задачи;
• Работает только с тем, к чему вы сами дали доступ;
• Стабильно доступен в России, без зарубежных карт и посредников при оплате;
• В основе — модель BitrixGPT 5.6 Agent 1M (контекст на 1M токенов);
• Доступно для macOS, Windows и Linux.
Ранний доступ к Битрикс24 Коворк/Код уже открыт.
Получить предложение
#реклама 16+
cowork.bitrix24.ru
О рекламодателе | 406 |
| 14 | Задача: 100. Same Tree
Сложность: easy
Даны корни двух бинарных деревьев p и q. Напишите функцию, чтобы проверить, одинаковы ли они.
Два бинарных дерева считаются одинаковыми, если они структурно идентичны, и узлы имеют одинаковые значения.
Пример:
Input: p = [1,2,3], q = [1,2,3]
Output: true
👨💻 Алгоритм:
1⃣Проверяем, равны ли оба узла None, если да — возвращаем True
2⃣Если один из узлов None или значения узлов разные — возвращаем False
3⃣Рекурсивно проверяем левое и правое поддеревья
😎 Решение:
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if not p and not q:
return True
if not q or not p:
return False
if p.val != q.val:
return False
return self.isSameTree(p.right, q.right) and self.isSameTree(
p.left, q.left
)
Ставь 👍 и забирай 📚 Базу знаний | 639 |
| 15 | Бесплатный курс: веб-дизайн, графика, интерфейсы
Научись создавать дизайн сайтов и приложений, инфографику для карточек на маркетплейсах и работать в Figma!
Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰
Этот курс для тебя, если ты:
✅ мечтаешь о новой профессии, но не знаешь, с чего начать;
✅ чувствуешь, что хочешь большего — свободы, самореализации, творчества;
✅ полный новичок и хочешь систему, а не хаос;
✅ хочешь начать зарабатывать удалённо.
Зарегистрироваться
#реклама 16+
ydaev.ru
О рекламодателе | 457 |
| 16 | Задача: 943. Find the Shortest Superstring
Сложность: hard
Учитывая массив строк words, верните наименьшую строку, которая содержит каждую строку в words в качестве подстроки. Если существует несколько допустимых строк наименьшей длины, верните любую из них. Вы можете предположить, что ни одна строка в words не является подстрокой другой строки в words.
Пример:
Input: words = ["alex","loves","leetcode"]
Output: "alexlovesleetcode"
👨💻 Алгоритм:
1⃣Реализовать функцию overlap для вычисления максимального перекрытия двух строк, где одна строка заканчивается, а другая начинается.
2⃣Реализовать функцию merge для объединения двух строк с максимальным перекрытием.
Использовать жадный алгоритм для нахождения двух строк с максимальным перекрытием и объединить их, повторяя до тех пор, пока не останется одна строка.
3⃣Вернуть результат.
😎 Решение:
def shortestSuperstring(words):
def overlap(a, b):
max_overlap = 0
for i in range(1, min(len(a), len(b)) + 1):
if a[-i:] == b[:i]:
max_overlap = i
return max_overlap
def merge(a, b, overlap_len):
return a + b[overlap_len:]
while len(words) > 1:
max_overlap = -1
l, r = 0, 0
for i in range(len(words)):
for j in range(len(words)):
if i != j:
ovlp = overlap(words[i], words[j])
if ovlp > max_overlap:
max_overlap = ovlp
l, r = i, j
words.append(merge(words[l], words[r], max_overlap))
words.pop(r)
words.pop(l)
return words[0]
Ставь 👍 и забирай 📚 Базу знаний | 625 |
| 17 | Устройтесь в Яндекс за неделю на Week Offer Security
⚡ Ищем инженеров по информационной безопасности с опытом от 2 лет: Application Security, Infrastructure Security и SOC L3.
Формат простой: вы регистрируетесь, проходите две технические секции онлайн, затем знакомитесь с командами на финальных интервью. Если всё совпадёт, получите офер уже в рамках мероприятия.
Как это устроено:
✅ До 4 сентября зарегистрируйтесь на Week Offer Security
✅ 12 и 13 сентября пройдите технические секции онлайн
✅ С 14 по 18 сентября познакомьтесь с командами на финальных интервью и получите офер в Яндекс
Подходит специалистам, которые хотят пройти найм без длинных пауз между этапами и быстро получить обратную связь.
Переходите по ссылке, чтобы узнать подробности и оставить заявку.
Перейти на сайт
#реклама 16+
yandex.ru
О рекламодателе | 473 |
| 18 | Задача: 1353. Maximum Number of Events That Can Be Attended
Сложность: medium
Дан массив событий, где events[i] = [startDayi, endDayi]. Каждое событие i начинается в startDayi и заканчивается в endDayi.
Вы можете посетить событие i в любой день d, где startDayi <= d <= endDayi. Вы можете посещать только одно событие в любой момент времени d.
Верните максимальное количество событий, которые вы можете посетить.
Пример:
Input: events= [[1,2],[2,3],[3,4],[1,2]]
Output: 4
👨💻 Алгоритм:
1⃣Сортировка событий по времени завершения:
Сначала отсортируйте массив событий по времени окончания каждого события в порядке возрастания. Это позволит сначала рассматривать события, которые заканчиваются раньше.
2⃣Использование множества для отслеживания посещенных дней:
Создайте множество для хранения дней, в которые уже были посещены события. Это позволит легко проверять, был ли день уже использован для посещения другого события.
3⃣Посещение событий в доступные дни:
Пройдитесь по отсортированному массиву событий. Для каждого события проверьте каждый день от начала события до его окончания и найдите первый доступный день, который еще не был использован. Если такой день найден, добавьте его в множество и увеличьте счетчик посещенных событий.
😎 Решение:
class Solution:
def maxEvents(self, events: List[List[int]]) -> int:
events.sort(key=lambda x: x[1])
visited_days = set()
count = 0
for start, end in events:
for day in range(start, end + 1):
if day not in visited_days:
visited_days.add(day)
count += 1
break
return count
Ставь 👍 и забирай 📚 Базу знаний | 605 |
| 19 | Переехать из мегаполиса проще, чем кажется
А что, если после работы не нужно стоять в пробке, до школы — несколько минут, а природа - не только по выходным?
Доброград — новый город во Владимирской области, в 2,5 часах от Москвы. Здесь всё важное на расстоянии 15 минут:
🎓 школы и детские сады
🏃♂️ бассейн, спорт, теннис, падел, вейк-парк и гольф-поле
😊 лес, озёра, парки и 25 км велодорожек
✨ рестораны и SPA
✅ медицина
Дети могут сами добираться до школы. Спорт и любимые занятия становятся частью обычного дня. А вместо часов в дороге появляется время на семью, друзей и себя.
И это не место, куда приезжают только на выходные. Здесь уже живут 3000 человек из 60+ регионов России.
Выбирайте свой формат: готовые квартиры, таунхаусы или земельные участки.
Узнать больше
#реклама
dobrograd.ru
О рекламодателе | 522 |
| 20 | Задача: 737. Sentence Similarity II
Сложность: medium
Мы можем представить предложение в виде массива слов, например, предложение "I am happy with leetcode" можно представить как arr = ["I", "am",happy", "with", "leetcode"].
Даны два предложения sentence1 и sentence2, каждое из которых представлено в виде массива строк, и массив пар строк similarPairs, где similarPairs[i] = [xi, yi] указывает, что два слова xi и yi похожи. Возвращается true, если предложения sentence1 и sentence2 похожи, или false, если они не похожи. Два предложения похожи, если: у них одинаковая длина (т.е, Заметьте, что слово всегда похоже само на себя, также обратите внимание, что отношение сходства является транзитивным. Например, если слова a и b похожи, а слова b и c похожи, то a и c похожи.
Пример:
Input: sentence1 = ["great","acting","skills"], sentence2 = ["fine","drama","talent"], similarPairs = [["great","good"],["fine","good"],["drama","acting"],["skills","talent"]]
Output: true
👨💻 Алгоритм:
1⃣Проверить, одинаковой ли длины предложения sentence1 и sentence2. Если нет, вернуть false.
2⃣Построить граф схожести слов с использованием словаря.
3⃣Использовать поиск в глубину (DFS) для проверки транзитивной схожести слов в предложениях.
😎 Решение:
def areSentencesSimilar(sentence1, sentence2, similarPairs):
if len(sentence1) != len(sentence2):
return False
graph = {}
for x, y in similarPairs:
if x not in graph:
graph[x] = []
if y not in graph:
graph[y] = []
graph[x].append(y)
graph[y].append(x)
def dfs(word1, word2, visited):
if word1 == word2:
return True
visited.add(word1)
for neighbor in graph.get(word1, []):
if neighbor not in visited and dfs(neighbor, word2, visited):
return True
return False
for w1, w2 in zip(sentence1, sentence2):
if w1 != w2 and not dfs(w1, w2, set()):
return False
return True
Ставь 👍 и забирай 📚 Базу знаний | 562 |
