Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में ग्रंपी बुकस्टोर ओनर


मान लीजिए एक बुकस्टोर ओनर का स्टोर कस्टमर्स लिस्ट एंट्रीज मिनट्स के लिए खुला है। हर मिनट, कुछ संख्या में कस्टमर्स (customers[i]) स्टोर में प्रवेश करते हैं, उसके बाद वे सभी उस मिनट के अंत में चले जाते हैं। कुछ मिनटों में, ओनर ग्रंपी होता है। अब यदि ओनर i-वें मिनट पर ग्रंपी है, तो grumpy[i] = 1, अन्यथा grumpy[i] = 0। जब बुकस्टोर ओनर ग्रंपी होता है, तो उस मिनट के कस्टमर्स नाखुश होते हैं, अन्यथा वे खुश होते हैं। बुकस्टोर ओनर को X मिनट तक सीधे खुद को ग्रंपी न रखने की तकनीक पता है। उस तकनीक का उपयोग एक से अधिक बार नहीं किया जा सकता। हमें पूरे दिन खुश कस्टमर्स की अधिकतम संख्या ढूंढनी है। इसलिए यदि इनपुट है: customers = [1,0,1,2,1,1,7,5] और grumpy = [0,1,0,1,0,1] और X = 3, तो आउटपुट 16 होगा। ऐसा इसलिए क्योंकि ओनर अंतिम तीन मिनट के लिए खुद को ग्रंपी नहीं रखेगा। तो खुश कस्टमर्स की अधिकतम संख्या 1 + 1 + 1 + 1 + 7 + 5 = 16 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • i := 0, j := 0, sums := खाली लिस्ट और temp := 0 सेट करें

  • जब तक j - i + 1 < X

    • यदि grumpy[j] 1 है, तो temp := temp + customers[j]

    • j को 1 से बढ़ाएं

  • sums ऐरे में [temp, i, j] लिस्ट इन्सर्ट करें

  • i और j को 1 से बढ़ाएं

  • जब तक j < कस्टमर लिस्ट की लंबाई

    • यदि grumpy[i - 1] 1 है, तो temp := temp - customers[i - 1]

    • यदि grumpy[j] 1 है, तो temp := temp + customer[j]

    • sums ऐरे में [temp, i, j] लिस्ट इन्सर्ट करें

    • i और j को 1 से बढ़ाएं

  • sums := इनर लिस्ट्स के पहले एलिमेंट के आधार पर sums ऐरे को सॉर्ट करें

  • index1 := sums में अंतिम लिस्ट का दूसरा एलिमेंट, index2 := sums में अंतिम लिस्ट का तीसरा एलिमेंट,

  • i को index1 से index2 तक रेंज में grumpy[i] := 0 सेट करें

  • ans := 0

  • i को 0 से customers की लंबाई तक रेंज में

    • यदि grumpy[i] 0 है, तो ans := ans + customers[i]

  • ans लौटाएं

उदाहरण

class Solution(object):
    def maxSatisfied(self, customers, grumpy, X):
        i = 0
        j = 0
        sums = []
        temp = 0
        while j-i+1

इनपुट

[1,0,1,2,1,1,7,5] [0,1,0,1,0,1,0,1] 3

आउटपुट

16

  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - पायथन का उपयोग करके फ़ाइल का मालिक कैसे बदलें?

    आप pwd, grp और os मॉड्यूल का उपयोग करके फ़ाइल या डायरेक्टरी के मालिक को बदल सकते हैं। pwd मॉड्यूल का उपयोग यूज़र नेम से uid प्राप्त करने के लिए किया जाता है, grp का उपयोग ग्रुप नेम स्ट्रिंग से gid प्राप्त करने के लिए, और os का उपयोग मालिक बदलने के लिए: उदाहरण import pwd import grp import os uid = p

  1. - पायथन का उपयोग करके डायरेक्टरी का मालिक कैसे बदलें?

    आप pwd, grp और os मॉड्यूल का उपयोग करके फ़ाइल या डायरेक्टरी के मालिक को बदल सकते हैं। pwd मॉड्यूल का उपयोग यूज़र नेम से uid प्राप्त करने के लिए किया जाता है, grp का उपयोग ग्रुप नेम स्ट्रिंग से gid प्राप्त करने के लिए, और os का उपयोग मालिक बदलने के लिए: उदाहरण import pwd import grp import os uid = p