सभी चुनौतियाँ
आसान 0 हल किए गए 0% स्वीकृति

WhenAll के साथ कुल समय

पता लगाइए कि जब कार्यों के हर समूह को Task.WhenAll के साथ एक साथ चलाया जाता है और समूह एक-एक करके चलते हैं, तो प्रोग्राम को कितना समय लगता है।

आप क्या सीखेंगे

  • समझना कि WhenAll सबसे धीमे टास्क का इंतज़ार करता है
  • एक के बाद एक await किए समूहों का समय जोड़ना
  • खाली समूह संभालना

समस्या

await Task.WhenAll(tasks) कार्यों के एक समूह को एक साथ शुरू करता है और सबसे धीमे के पूरा होने पर आगे बढ़ता है। इसलिए ऐसा प्रोग्राम जो कई समूहों को एक-एक करके await करता है, हर समूह के सबसे धीमे task के समयों के योग के बराबर समय लेता है।

when_all_total_time(groups) को implement करें, जहाँ groups[i] group i में tasks की durations की सूची है।

Input

groups: समूह, जिन्हें क्रम से awaited किया गया है। एक खाली group तुरंत पूरा हो जाता है।

Output

कुल समय return करें।

सीमाएँ

0 ≤ समूहों की संख्या ≤ 10,000

0 ≤ हर समूह में टास्क ≤ 1,000; 0 ≤ अवधि ≤ 10^6

उदाहरण

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

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

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

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

व्याख्या

समूहों को उतना समय लगता है जितना उनके सबसे धीमे task को: 3 + 5 + 2 = 10.

उदाहरण 2
इनपुट:
groups = [
    [],
    [4, 7]
]

अपेक्षित आउटपुट:
expected = 7
इनपुट:
std::vector<std::vector<long long>> groups = {
    {},
    {4, 7}
};

अपेक्षित आउटपुट:
long long expected = 7;
इनपुट:
long[][] groups = new long[][] {
    new long[] {},
    new long[] {4, 7}
};

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

व्याख्या

खाली समूह को कोई समय नहीं लगता; दूसरा समूह 7 लेता है.

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

समूह तब खत्म होता है जब उसका सबसे धीमा टास्क खत्म होता है।

संकेत 2

समूह एक के बाद एक चलते हैं, इसलिए उनका समय जुड़ता है।

संकेत 3

खाली समूह कोई समय नहीं जोड़ता।

अपेक्षित जटिलता

समय O(कुल टास्क की संख्या), अतिरिक्त स्थान O(1)

संदर्भ

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

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

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

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