कठिन 0 हल किए गए 0% स्वीकृति

Course Schedule Order

Order courses so every prerequisite comes first.

समस्या

Courses are numbered 0..n−1. Each pair [course, prerequisite] means the prerequisite must be taken before the course. Return an order to take all courses; when several courses are available, take the lowest-numbered one first so the answer is unique.

Implement course_order(n, prerequisites).

Input

n: The number of courses. prerequisites: Pairs [course, prerequisite].

Output

Return the course order, or an empty list if a cycle makes it impossible.

सीमाएँ

1 ≤ n ≤ 100,000; 0 ≤ pairs ≤ 200,000

उदाहरण

उदाहरण 1
इनपुट:
n = 4
prerequisites = [
    [1, 0],
    [2, 0],
    [3, 1],
    [3, 2]
]

अपेक्षित आउटपुट:
expected = [0, 1, 2, 3]
इनपुट:
long long n = 4;
std::vector<std::vector<long long>> prerequisites = {
    {1, 0},
    {2, 0},
    {3, 1},
    {3, 2}
};

अपेक्षित आउटपुट:
std::vector<long long> expected = {0, 1, 2, 3};
इनपुट:
long n = 4;
long[][] prerequisites = new long[][] {
    new long[] {1, 0},
    new long[] {2, 0},
    new long[] {3, 1},
    new long[] {3, 2}
};

अपेक्षित आउटपुट:
long[] expected = new long[] {0, 1, 2, 3};

व्याख्या

0 first, then 1 and 2 (lowest first), then 3: [0, 1, 2, 3].

उदाहरण 2
इनपुट:
n = 2
prerequisites = [
    [0, 1],
    [1, 0]
]

अपेक्षित आउटपुट:
expected = []
इनपुट:
long long n = 2;
std::vector<std::vector<long long>> prerequisites = {
    {0, 1},
    {1, 0}
};

अपेक्षित आउटपुट:
std::vector<long long> expected = {};
इनपुट:
long n = 2;
long[][] prerequisites = new long[][] {
    new long[] {0, 1},
    new long[] {1, 0}
};

अपेक्षित आउटपुट:
long[] expected = new long[] {};

व्याख्या

Each course requires the other, so no order exists: [].

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।