Logo
TGCATALOG
Каталог Подборки Блог
C/C++ LeetCode - задачи

C/C++ LeetCode - задачи

LeetCode задачи C/C++.

Нет оценок
52
10.09.2026
52
10.09.2026
Нет оценок
52
10.09.2026
Безопасный переход через бот
О канале

LeetCode задачи C/C++.

Подписчиков 3,234
Тематика Технологии
Язык Русский
Ссылка t.me/easy_c_plus_task

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Решения и задачи LeetCode на C/C++.

Последние посты

C/C++ LeetCode - задачи
C/C++ LeetCode - задачи
🔒Открыть пост
и посмотреть медиа
Задача: 210. Course Schedule II Сложность: medium Дано число numCourses и список пар prerequisites, где каждая пара [a, b] означает: чтобы взять курс a, нужно сначала пройти курс b. Верните один из возможных порядков прохождения курсов. Если пройти все курсы невозможно (из-за циклов) — верните пустой массив. Пример: Input: numCourses = 4, prerequisites = [[1,0],[2,0],[3,1],[3,2]] Output: [0,2,1,3] 👨💻 Алгоритм: 1⃣Построение графа и подготовка к DFS Создаем список смежности adjList, где adjList[b] содержит все курсы, зависящие от b. Каждый курс помечаем цветом: WHITE = 1 — не посещён GRAY = 2 — в процессе обработки BLACK = 3 — полностью обработан 2⃣Обход в глубину (DFS) и детектирование цикла Для каждого непосещённого узла запускаем dfs. Если во время обхода обнаруживаем цикл (возврат к GRAY узлу), значит, пройти курсы невозможно. 3⃣Формирование ответа После завершения DFS по всем узлам формируем порядок курсов из стека (или массива) topologicalOrder, инвертируя его. 😎Решение: cppКопироватьРедактироватьclass Solution { public: int WHITE = 1; int GRAY = 2; int BLACK = 3; vector findOrder(int numCourses, vector& prerequisites) { bool isPossible = true; map color; map adjList; vector topologicalOrder; for (int i = 0; i < numCourses; i++) color[i] = WHITE; for (vector relation : prerequisites) { int dest = relation[0]; int src = relation[1]; adjList[src].push_back(dest); } for (int i = 0; i < numCourses && isPossible; i++) { if (color[i] == WHITE) { dfs(i, color, adjList, isPossible, topologicalOrder); } } vector order; if (isPossible) { order.resize(numCourses); for (int i = 0; i < numCourses; i++) { order[i] = topologicalOrder[numCourses - i - 1]; } } return order; } void dfs(int node, map& color, map& adjList, bool& isPossible, vector& topologicalOrder) { if (!isPossible) return; color[node] = GRAY; for (int neighbor : adjList[node]) { if (color[neighbor] == WHITE) { dfs(neighbor, color, adjList, isPossible, topologicalOrder); } else if (color[neighbor] == GRAY) { isPossible = false; } } color[node] = BLACK; topologicalOrder.push_back(node); } }; Ставь 👍 и забирай 📚 Базу знаний
C/C++ LeetCode - задачи
Динамика подписчиков
+0.0% за 30 дней
Текущие
3,234
Месяц назад
3,234
Средний рост
+0 / день
Обновлено
11 часов назад

Отзывы о канале C/C++ LeetCode - задачи

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Платформа для быстрого создания и настройки Telegram ботов с удобным интерфейсом.

Бот

Канал с информацией о токенах KuCoin: листинги, новости и обновления для трейдеров криптовалют.

Канал

Технологический канал с новостями, обзорами гаджетов, темами, обоями, VPN и иранскими новостями о телефонах.

Канал
Переход на светлую тему
Главная Каталог Подборки Блог Вход