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

अजगर में क्रोधी किताबों की दुकान का मालिक

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

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

  • मैं सेट करें:=0, जे:=0, रकम:=खाली सूची और अस्थायी:=0

  • जबकि j - i + 1

    • अगर क्रोधी [जे] 1 है, तो अस्थायी:=अस्थायी + ग्राहक [जे]

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

  • एक सूची [अस्थायी, i, j] रकम सरणी में डालें

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

  • जबकि j <ग्राहक सूची की लंबाई

    • अगर क्रोधी [i - 1] 1 है, तो अस्थायी:=अस्थायी - ग्राहक [i - 1]

    • अगर क्रोधी [जे] 1 है, तो अस्थायी:=अस्थायी + ग्राहक [जे]

    • एक सूची [अस्थायी, i, j] रकम सरणी में डालें

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

  • sums :=आंतरिक सूचियों के पहले तत्व के आधार पर रकम की सरणी को क्रमबद्ध करें

  • अनुक्रमणिका1 :=योग में अंतिम सूची का दूसरा तत्व, अनुक्रमणिका2 :=योग में अंतिम सूची का तीसरा तत्व,

  • मैं के लिए अनुक्रमणिका1 से अनुक्रमणिका2 की श्रेणी में क्रोधी सेट करें[i] :=0

  • उत्तर:=0

  • मेरे लिए 0 से लेकर ग्राहकों की लंबाई तक

    • अगर क्रोधी [i] 0 है, तो उत्तर:=उत्तर + ग्राहक [i]

  • वापसी उत्तर

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class Solution(object):
   def maxSatisfied(self, customers, grumpy, X):
      i = 0
      j = 0
      sums = []
      temp = 0
      while j-i+1<X:
         if grumpy[j]:
            temp+=customers[j]
         j+=1
      sums.append([temp,i,j])
      i+=1
      j+=1
      while j<len(customers):
         if grumpy[i-1]:
            temp-=customers[i-1]
         if grumpy[j]:
            temp+=customers[j]
         sums.append([temp,i,j])
         i+=1
         j+=1
      sums =sorted(sums,key = lambda v : v[0])
      index1 = sums[-1][1]
      index2 = sums[-1][2]
      for i in range(index1,index2+1):
         grumpy[i] = 0
      ans = 0
      for i in range(len(customers)):
         if not grumpy[i]:
            ans+=customers[i]
      return ans
ob = Solution()
print(ob.maxSatisfied([1,0,1,2,1,1,7,5],[0,1,0,1,0,1,0,1],3))

इनपुट

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

आउटपुट

16

  1. issuperset () पायथन में

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

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

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

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

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