en
Feedback
Python | LeetCode

Python | LeetCode

Open in Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv

Show more
9 172
Subscribers
-524 hours
-97 days
-6630 days
Attracting Subscribers
August '26
August '26
+41
in 1 channels
July '26
+36
in 0 channels
Get PRO
June '26
+44
in 2 channels
Get PRO
May '26
+40
in 0 channels
Get PRO
April '26
+47
in 0 channels
Get PRO
March '26
+50
in 0 channels
Get PRO
February '26
+42
in 0 channels
Get PRO
January '26
+69
in 0 channels
Get PRO
December '25
+55
in 0 channels
Get PRO
November '25
+105
in 0 channels
Get PRO
October '25
+110
in 0 channels
Get PRO
September '25
+67
in 0 channels
Get PRO
August '25
+112
in 1 channels
Get PRO
July '25
+128
in 4 channels
Get PRO
June '25
+129
in 2 channels
Get PRO
May '25
+166
in 3 channels
Get PRO
April '25
+178
in 0 channels
Get PRO
March '25
+217
in 3 channels
Get PRO
February '25
+343
in 6 channels
Get PRO
January '25
+307
in 53 channels
Get PRO
December '24
+150
in 0 channels
Get PRO
November '24
+174
in 0 channels
Get PRO
October '24
+725
in 15 channels
Get PRO
September '24
+3 750
in 329 channels
Get PRO
August '24
+260
in 0 channels
Get PRO
July '24
+2 514
in 219 channels
Get PRO
June '24
+3 546
in 232 channels
Date
Subscriber Growth
Mentions
Channels
26 August0
25 August0
24 August+4
23 August+1
22 August+3
21 August+3
20 August+3
19 August+5
18 August+1
17 August+2
16 August0
15 August+3
14 August+2
13 August+1
12 August+1
11 August+2
10 August+1
09 August0
08 August+2
07 August0
06 August0
05 August+1
04 August+2
03 August+2
02 August+1
01 August+1
Channel Posts
Вебинар: Как Python-разработчику получить оффер в бигтех Увидишь, где ошибаются даже сильные инженеры. Поймёшь, как нанимающи
Вебинар: Как 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+ поступивших в ШАД. Преподаватели МГУ. Гарантия результата. Вы поступите в ШАД+3
Подготовка к вступительным экзаменам в ШАД 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 с разработчиком из Яндекса завтра вечером Уже завтра вечером в 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 представил Коворк/Код Ключевое: • Помнит рабочий контекст месяцами благодаря технологии Радиант: связывает задачи,
Битрикс24 представил Коворк/Код Ключевое: • Помнит рабочий контекст месяцами благодаря технологии Радиант: связывает задачи, сделки, переписку и файлы в единую картину, замечает риски и подсказывает следующий шаг — не нужно каждый раз объяснять, о каком клиенте или проекте речь; • Выполняет несколько задач параллельно — помогает ускорить рабочий процесс в разы; • В режиме Коворк выполняет рабочие поручения, в режиме Код создает приложения под ваши задачи; • Работает только с тем, к чему вы сами дали доступ; • Стабильно доступен в России, без зарубежных карт и посредников при оплате; • В основе — модель BitrixGPT 5.6 Agent 1M (контекст на 1M токенов); • Доступно для macOS, Windows и Linux. Ранний доступ к Битрикс24 Коворк/Код уже открыт. Получить предложение #реклама 16+ cowork.bitrix24.ru О рекламодателе
406
14
Задача: 100. Same Tree Сложность: easy Даны корни двух бинарных деревьев p и q. Напишите функцию, чтобы проверить, одинаковы
Задача: 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 лет: Appli
Устройтесь в Яндекс за неделю на 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
Переехать из мегаполиса проще, чем кажется А что, если после работы не нужно стоять в пробке, до школы — несколько минут, а природа - не только по выходным? Доброград — новый город во Владимирской области, в 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