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

Maximum Project Rewards

Choose nonoverlapping projects to earn the largest total reward.

Each project is [start_day, end_day, reward]. It occupies every day from start_day through end_day, including both endpoints. You can participate in only one project on a day. Choose a subset with the largest total reward. A project starting on another project’s end day conflicts with it.

Implement project_rewards(projects).

Input

projects: Rows of three integers: start day, end day, and reward.

Output

Return the maximum total reward; the chosen projects need not be returned.

सीमाएँ

1 ≤ projects ≤ 200,000. 1 ≤ start_day ≤ end_day ≤ 1,000,000,000. Rewards are positive integers at most 1,000,000,000.

उदाहरण

उदाहरण 1
इनपुट:
projects = [
    [1, 2, 4],
    [3, 4, 5],
    [2, 3, 10]
]

अपेक्षित आउटपुट:
expected = 10
इनपुट:
std::vector<std::vector<long long>> projects = {
    {1, 2, 4},
    {3, 4, 5},
    {2, 3, 10}
};

अपेक्षित आउटपुट:
long long expected = 10;
इनपुट:
long[][] projects = new long[][] {
    new long[] {1, 2, 4},
    new long[] {3, 4, 5},
    new long[] {2, 3, 10}
};

अपेक्षित आउटपुट:
long expected = 10;

व्याख्या

The first two projects earn 9 together. The last earns 10 and conflicts with both, so choose it alone.

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

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

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

अपेक्षित आउटपुट:
long expected = 5;

व्याख्या

Both occupy day 2. Choose only the second, with reward 5.

संदर्भ

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

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

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

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