ar
Feedback
Python | LeetCode

Python | LeetCode

الذهاب إلى القناة على Telegram
9 050
المشتركون
-324 ساعات
-237 أيام
-7330 أيام

جاري تحميل البيانات...

جذب المشتركين
أكتوبر '26
أكتوبر '26
+5
في 0 قنوات
سبتمبر '26
+42
في 0 قنوات
Get PRO
أغسطس '26
+43
في 1 قنوات
Get PRO
يوليو '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 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
06 أكتوبر0
05 أكتوبر+2
04 أكتوبر0
03 أكتوبر+1
02 أكتوبر0
01 أكتوبر+2
منشورات القناة
Срочно требуются дизайнеры в FIGMA. Обучим с нуля. Онлайн-программа с наставником и чатом. Внимание! 80% практики. ✅По результату обучения у вас будет портфолио из нескольких работ. ✅Сертификат о прохождении курса. ✅Возможность пройти полное обучение и получить карьерное сопровождение! Учитесь дизайну у профессионалов в Yudaev Shool. Переходи по кнопки: "Подробнее" и начинай свое обучение. Доступ 0 руб. Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе

2
Задача: 958. Check Completeness of a Binary Tree Сложность: medium Дан корень бинарного дерева, определите, является ли оно полным бинарным деревом. В полном бинарном дереве каждый уровень, за исключением, возможно, последнего, полностью заполнен, и все узлы на последнем уровне расположены как можно левее. На последнем уровне h может быть от 1 до 2^h узлов включительно. Пример: Input: root = [1,2,3,4,5,6] Output: true Explanation: Every level before the last is full (ie. levels with node-values {1} and {2, 3}), and all nodes in the last level ({4, 5, 6}) are as far left as possible. 👨‍💻 Алгоритм: 1⃣Если корень дерева равен null, верните true. 2⃣Инициализируйте переменную nullNodeFound как false для отслеживания того, встречался ли уже null-узел. Создайте очередь и поместите в неё корень дерева. 3⃣Пока очередь не пуста: Извлеките первый элемент из очереди. Если элемент равен null, установите nullNodeFound в true. Если элемент не равен null, проверьте, встречался ли уже null-узел. Если nullNodeFound равен true, верните false. В противном случае добавьте в очередь левого и правого потомков текущего узла. 😎 Решение: from collections import deque class Solution: def isCompleteTree(self, root: TreeNode) -> bool: if not root: return True queue = deque([root]) nullNodeFound = False while queue: node = queue.popleft() if not node: nullNodeFound = True else: if nullNodeFound: return False queue.append(node.left) queue.append(node.right) return True Ставь 👍 и забирай 📚 Базу знаний
346
3
Задача: 949. Largest Time for Given Digits Сложность: medium Учитывая массив arr из 4 цифр, найдите самое позднее 24-часовое время, которое можно составить, используя каждую цифру ровно один раз. 24-часовое время имеет формат "ЧЧ:ММ", где ЧЧ - от 00 до 23, а ММ - от 00 до 59. Самое раннее 24-часовое время - 00:00, а самое позднее - 23:59. Верните самое позднее 24-часовое время в формате "HH:MM". Если не удается определить действительное время, возвращается пустая строка. Пример: Input: arr = [1,2,3,4] Output: "23:41" 👨‍💻 Алгоритм: 1⃣Перебрать все возможные перестановки массива arr. 2⃣Проверить каждую перестановку, можно ли из нее составить допустимое 24-часовое время. Найти самое позднее допустимое время среди всех перестановок. 3⃣Алгоритм Перебрать все возможные перестановки массива arr. Проверить каждую перестановку, можно ли из нее составить допустимое 24-часовое время. Найти самое позднее допустимое время среди всех перестановок. Вернуть найденное время в формате "HH ". Если допустимое время не найдено, вернуть пустую строку. 😎 Решение: from itertools import permutations def largestTimeFromDigits(arr): max_time = -1 for perm in permutations(arr): hours = perm[0] * 10 + perm[1] minutes = perm[2] * 10 + perm[3] if hours < 24 and minutes < 60: max_time = max(max_time, hours * 60 + minutes) if max_time == -1: return "" return f"{max_time // 60:02}:{max_time % 60:02}" Ставь 👍 и забирай 📚 Базу знаний
347
4
Открытый урок: бизнес-логика в микросервисах Разработка в микросервисах — это не только разбиение на сервисы, но и грамотное
Открытый урок: бизнес-логика в микросервисах Разработка в микросервисах — это не только разбиение на сервисы, но и грамотное распределение логики. 22 октября в 19:00 мск — открытый урок для разработчиков и архитекторов. Узнаете, где должна жить бизнес-логика. Запишитесь! Зарегистрироваться #реклама 16+ otus.ru О рекламодателе
345
5
Задача: 1312. Minimum Insertion Steps to Make a String Palindrome Сложность: hard Дана строка s. За один шаг вы можете вставить любой символ в любой индекс строки. Верните минимальное количество шагов, необходимых для превращения s в палиндром. Палиндром — это строка, которая читается одинаково как вперед, так и назад. Пример: Input: s = "zzazz" Output: 0 Explanation: The string "zzazz" is already palindrome we do not need any insertions. 👨‍💻 Алгоритм: 1⃣Создайте целочисленную переменную n и инициализируйте её размером строки s. Создайте строковую переменную sReverse и установите её значение как обратную строку s. 2⃣Создайте двумерный массив memo размером n + 1 на n + 1, где memo[i][j] будет содержать длину наибольшей общей подпоследовательности, учитывая первые i символов строки s и первые j символов строки sReverse. Инициализируйте массив значением -1. 3⃣Верните n - lcs(s, sReverse, n, n, memo), где lcs - это рекурсивный метод с четырьмя параметрами: первая строка s1, вторая строка s2, длина подстроки от начала s1, длина подстроки от начала s2 и memo. Метод возвращает длину наибольшей общей подпоследовательности в подстроках s1 и s2. В этом методе выполните следующее: Если m == 0 или n == 0, это означает, что одна из двух подстрок пуста, поэтому верните 0. Если memo[m][n] != -1, это означает, что мы уже решили эту подзадачу, поэтому верните memo[m][n]. Если последние символы подстрок совпадают, добавьте 1 и найдите длину наибольшей общей подпоследовательности, исключив последний символ обеих подстрок. Верните memo[i][j] = 1 + lcs(s1, s2, m - 1, n - 1, memo). В противном случае, если последние символы не совпадают, рекурсивно найдите наибольшую общую подпоследовательность в обеих подстроках, исключив их последние символы по одному. Верните memo[i][j] = max(lcs(s1, s2, m - 1, n, memo), lcs(s1, s2, m, n - 1, memo)). 😎 Решение: class Solution: def lcs(self, s1, s2, m, n, memo): if m == 0 or n == 0: return 0 if memo[m][n] != -1: return memo[m][n] if s1[m - 1] == s2[n - 1]: memo[m][n] = 1 + self.lcs(s1, s2, m - 1, n - 1, memo) else: memo[m][n] = max(self.lcs(s1, s2, m - 1, n, memo), self.lcs(s1, s2, m, n - 1, memo)) return memo[m][n] def minInsertions(self, s: str) -> int: n = len(s) sReverse = s[::-1] memo = [[-1] * (n + 1) for _ in range(n + 1)] return n - self.lcs(s, sReverse, n, n, memo) Ставь 👍 и забирай 📚 Базу знаний
375
6
Аренда и размещение серверов в дата-центрах Москвы ITSOFT оказывает услуги коммерческого дата-центра в Москве. 👌Аренда физич
Аренда и размещение серверов в дата-центрах Москвы ITSOFT оказывает услуги коммерческого дата-центра в Москве. 👌Аренда физических выделенных серверов (Dedicated Servers) в готовых конфигурациях и в рамках индивидуальных сборок. 👌Colocation и аренда серверных стоек. 👌Предоставление инфраструктурных ИТ-решений для физических лиц и корпоративных клиентов. 👌Предоставление высокоскоростных каналов передачи данных. Узнать цену #реклама 16+ itsoft.ru О рекламодателе
404
7
Задача: 1103. Distribute Candies to People Сложность: easy Мы распределяем некоторое количество конфет ряду из n = num_people человек следующим образом: Сначала даем 1 конфету первому человеку, 2 конфеты второму человеку и так далее, пока не дадим n конфет последнему человеку. Затем мы возвращаемся к началу ряда, давая n + 1 конфету первому человеку, n + 2 конфеты второму человеку и так далее, пока не дадим 2 * n конфет последнему человеку. Этот процесс повторяется (мы каждый раз даем на одну конфету больше и возвращаемся к началу ряда после достижения конца), пока у нас не закончатся конфеты. Последний человек получит все оставшиеся конфеты (не обязательно на одну больше, чем в предыдущий раз). Верните массив (длиной num_people и суммой candies), который представляет собой окончательное распределение конфет. Пример: Input: candies = 7, num_people = 4 Output: [1,2,3,1] Explanation: On the first turn, ans[0] += 1, and the array is [1,0,0,0]. On the second turn, ans[1] += 2, and the array is [1,2,0,0]. On the third turn, ans[2] += 3, and the array is [1,2,3,0]. On the fourth turn, ans[3] += 1 (because there is only one candy left), and the final array is [1,2,3,1]. 👨‍💻 Алгоритм: 1⃣Вычислите количество людей, получивших полные подарки, и оставшиеся конфеты: p = floor(sqrt(2C+0.25)-0.5) remainig = C - p(p+1)/2 2⃣Вычислите количество полных циклов и распределите конфеты: rows = p // n d[i]= i*rows + n*rows*(rows-1)/2 3⃣Добавьте конфеты за дополнительный неполный цикл и оставшиеся конфеты: d[i]+=i+n⋅rows для первых p%n людей d[p%n]+=remaining Верните распределение конфет d 😎 Решение: class Solution: def distributeCandies(self, candies: int, num_people: int) -> List[int]: n = num_people p = int((2 * candies + 0.25)**0.5 - 0.5) remaining = int(candies - (p + 1) * p * 0.5) rows, cols = p // n, p % n d = [0] * n for i in range(n): d[i] = (i + 1) * rows + int(rows * (rows - 1) * 0.5) * n if i < cols: d[i] += i + 1 + rows * n d[cols] += remaining return d Ставь 👍 и забирай 📚 Базу знаний
466
8
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке Плюс. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
463
9
Бесплатный курс: веб-дизайн, графика, интерфейсы Научись создавать дизайн сайтов и приложений, инфографику для карточек на ма+5
Бесплатный курс: веб-дизайн, графика, интерфейсы Научись создавать дизайн сайтов и приложений, инфографику для карточек на маркетплейсах и работать в Figma! Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Этот курс для тебя, если ты: ✅ мечтаешь о новой профессии, но не знаешь, с чего начать; ✅ чувствуешь, что хочешь большего — свободы, самореализации, творчества; ✅ полный новичок и хочешь систему, а не хаос; ✅ хочешь начать зарабатывать удалённо. Зарегистрироваться
389
10
Скидки до 50% на посудомоечные машины Kuppersberg Посудомоечные машины Kuppersberg со скидками на Яндекс Маркете! Узнать боль
Скидки до 50% на посудомоечные машины Kuppersberg Посудомоечные машины Kuppersberg со скидками на Яндекс Маркете! Узнать больше
387
11
Задача: 1062. Longest Repeating Substring Сложность: medium Дана строка s. Вернуть длину самой длинной повторяющейся подстроки. Если повторяющаяся подстрока отсутствует, вернуть 0. Пример: Input: s = "abcd" Output: 0 Explanation: There is no repeating substring. 👨‍💻 Алгоритм: 1⃣Перемещайте скользящее окно длиной L по строке длиной N. 2⃣Проверьте, находится ли строка в скользящем окне в хэш-наборе уже виденных строк. Если да, то повторяющаяся подстрока находится здесь. Если нет, сохраните строку из скользящего окна в хэш-наборе. 3⃣Очевидный недостаток этого подхода — большое потребление памяти в случае длинных строк. 😎 Решение: class Solution: def search(self, L, n, S): seen = set() for start in range(n - L + 1): tmp = S[start:start + L] if tmp in seen: return start seen.add(tmp) return -1 def longestRepeatingSubstring(self, S): n = len(S) left, right = 1, n while left <= right: L = left + (right - left) // 2 if self.search(L, n, S) != -1: left = L + 1 else: right = L - 1 return left - 1 Ставь 👍 и забирай 📚 Базу знаний
893
12
Бесплатный вебинар ML для начинающих! Практический эфир для тех, кто присматривается к Data Science. ✅ ведущий — практикующий
Бесплатный вебинар ML для начинающих! Практический эфир для тех, кто присматривается к Data Science. ✅ ведущий — практикующий специалист со стажем ✅ разбор полного ML-проекта от задачи до анализа ошибок ✅ информация адаптирована для новичков ✅ не требуются дополнительная подготовка или ПО Узнайте реальную последовательность работы с ML-проектами и все необходимые навыки. Регистрируйтесь бесплатно и начинайте свой путь в новой специальности с Симулейтив! Записаться #реклама 16+ simulative.ru О рекламодателе
448
13
Капсульная коллекция в Т-Шопе Повод порадовать себя и разнообразить гардероб. Смотри, какие вещи созданы для плавного переход
Капсульная коллекция в Т-Шопе Повод порадовать себя и разнообразить гардероб. Смотри, какие вещи созданы для плавного перехода из будней в выходные. Посмотреть каталог #реклама tbank.ru О рекламодателе
423
14
Задача: 1376. Time Needed to Inform All Employees Сложность: medium В компании работает n сотрудников, каждому из которых присвоен уникальный идентификатор от 0 до n - 1. Руководитель компании имеет идентификатор headID. У каждого сотрудника есть один непосредственный начальник, указанный в массиве manager, где manager[i] — это непосредственный начальник i-го сотрудника, manager[headID] = -1. Также гарантируется, что отношения подчинения образуют древовидную структуру. Руководитель компании хочет сообщить всем сотрудникам компании срочную новость. Он сообщит своим непосредственным подчиненным, а они сообщат своим подчиненным и так далее, пока все сотрудники не узнают о срочной новости. i-й сотрудник нуждается в informTime[i] минутах, чтобы сообщить всем своим непосредственным подчиненным (т.е. через informTime[i] минут все его непосредственные подчиненные могут начать распространять новость). Верните количество минут, необходимых для того, чтобы сообщить всем сотрудникам о срочной новости. Пример: Input: n = 6, headID = 2, manager = [2,2,-1,2,2,2], informTime = [0,0,1,0,0,0] Output: 1 Explanation: The head of the company with id = 2 is the direct manager of all the employees in the company and needs 1 minute to inform them all. The tree structure of the employees in the company is shown. 👨‍💻 Алгоритм: 1⃣Создайте список смежности adjList; индекс i будет хранить смежные узлы для сотрудника с идентификатором i. 2⃣Итерируйте по сотрудникам от 0 до N - 1, и для каждого сотрудника i добавляйте ребро manager[i] -> i, если manager[i] не равен -1. 3⃣Начните выполнение DFS с узла headID и временем 0 для каждого узла как curr. Обновите максимальное время maxTime, сравнив его с текущим временем. Итерируйте по смежным узлам curr и для каждого смежного узла выполните DFS с временем time + informTime[curr]. Когда DFS завершится, верните maxTime. 😎 Решение: class Solution: def __init__(self): self.maxTime = float('-inf') def DFS(self, adjList, informTime, curr, time): self.maxTime = max(self.maxTime, time) for adjacent in adjList[curr]: self.DFS(adjList, informTime, adjacent, time + informTime[curr]) def numOfMinutes(self, n, headID, manager, informTime): adjList = [[] for _ in range(n)] for i in range(n): if manager[i] != -1: adjList[manager[i]].append(i) self.DFS(adjList, informTime, headID, 0) return self.maxTime Ставь 👍 и забирай 📚 Базу знаний
915
15
Бесплатный курс по графическому дизайну Получи востребованные навыки: - создание дизайна сайтов и приложений - создание инфог
Бесплатный курс по графическому дизайну Получи востребованные навыки: - создание дизайна сайтов и приложений - создание инфографики и карточек для маркетплейсов - работа в графическом редакторе Figma и др. Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Зарегистрироваться #реклама 16+ ydaev.ru О рекламодателе
394
16
🔴Тестовый собес на Middle Python с разработчиком из Яндекса завтра вечером! [+ разбор 50 сложных вопросов в подарок ] 23 сен
🔴Тестовый собес на Middle Python с разработчиком из Яндекса завтра вечером!  [+ разбор 50 сложных вопросов в подарок ] 23 сентября (уже завтра) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Python-разработчика! Собеседование проведёт Хачатур Саркисян - ведущий разработчик из Яндекса. Как это будет: 📂 Хачатур задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе; 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью; 📂 В конце сможешь задать любой вопрос Хачатуру и получить на него развёрнутый ответ. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. И ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Python-собеседований 🔥 Переходи в бот, чтобы попасть на эфир и забрать подарок 👉 @shortcut_py_bot Реклама. О рекламодателе.
433
17
Бесплатный курс: веб-дизайн, графика, интерфейсы Научись создавать дизайн сайтов и приложений, инфографику для карточек на ма
Бесплатный курс: веб-дизайн, графика, интерфейсы Научись создавать дизайн сайтов и приложений, инфографику для карточек на маркетплейсах и работать в Figma! Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Этот курс для тебя, если ты: ✅ мечтаешь о новой профессии, но не знаешь, с чего начать; ✅ чувствуешь, что хочешь большего — свободы, самореализации, творчества; ✅ полный новичок и хочешь систему, а не хаос; ✅ хочешь начать зарабатывать удалённо. Зарегистрироваться #реклама 16+ ydaev.ru О рекламодателе
463
18
Задача: 1027. Longest Arithmetic Subsequence Сложность: medium Если задан массив nums целых чисел, верните длину самой длинной арифметической подпоследовательности в nums. Примечание: Подпоследовательность - это массив, который может быть получен из другого массива путем удаления некоторых или ни одного элемента без изменения порядка оставшихся элементов. Последовательность seq является арифметической, если seq[i + 1] - seq[i] имеют одинаковое значение (для 0 <= i < seq.length - 1). Пример: Input: nums = [3,6,9,12] Output: 4 👨‍💻 Алгоритм: 1⃣Инициализация переменных: Создайте массив словарей dp, где dp[i][d] будет хранить длину самой длинной арифметической подпоследовательности, заканчивающейся на элементе i с разностью d. 2⃣Заполнение массива dp: Пройдитесь по каждому элементу массива nums. Для каждого элемента nums[j] (где j идет от 0 до i-1), вычислите разность d = nums[i] - nums[j]. Обновите dp[i][d] на основе значения dp[j][d]. 3⃣Поиск максимальной длины: Пройдите по массиву dp и найдите максимальное значение среди всех значений dp[i][d]. 😎 Решение: class Solution: def longestArithSeqLength(self, nums: List[int]) -> int: if not nums: return 0 dp = [{} for _ in range(len(nums))] max_length = 0 for i in range(len(nums)): for j in range(i): diff = nums[i] - nums[j] if diff in dp[j]: dp[i][diff] = dp[j][diff] + 1 else: dp[i][diff] = 2 # Start a new sequence max_length = max(max_length, dp[i][diff]) return max_length Ставь 👍 и забирай 📚 Базу знаний
711
19
Что будет работать в рекламе завтра? Ответ ищем вместе на REKONFA 2026. 15 октября соберёмся в Москве и онлайн, чтобы обсудит
Что будет работать в рекламе завтра? Ответ ищем вместе на REKONFA 2026. 15 октября соберёмся в Москве и онлайн, чтобы обсудить новые технологии Яндекс Рекламы, продуктовые запуски, тренды рынка, исследования и реальные кейсы. В программе — выступления экспертов и возможность поговорить с продуктовыми командами Яндекс Рекламы о своих задачах. А вне сцены вас ждут коворкинг, фотозоны и форматы для новых знакомств. Участвовать можно в Москве на ВТБ Арене или онлайн. Регистрация бесплатная. Зарегистрироваться #реклама 18+ ya.rekonfa.ru О рекламодателе
491
20
YaC/e 2026: кто и как будет учить в 2030 году Обсудим будущее преподавания на онлайн-конференции Яндекса YaC/e 2026. 30 сентя
YaC/e 2026: кто и как будет учить в 2030 году Обсудим будущее преподавания на онлайн-конференции Яндекса YaC/e 2026. 30 сентября. Участие бесплатно, вышлем сертификат участника! Регистрируйтесь до 29 сентября. Узнать больше #реклама 16+ yace.yandex.ru О рекламодателе
385