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

पायथन का उपयोग करके एक तत्व को हटाने के बाद 1s की सबसे लंबी उप-सरणी खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक द्विआधारी सरणी है जिसे अंक कहा जाता है, हम इसमें से एक तत्व को हटा सकते हैं। हमें सबसे लंबे गैर-रिक्त उप-सरणी का आकार ढूंढना है जिसमें परिणामी सरणी में केवल 1 है। यदि ऐसा कोई उप-सरणी नहीं है, तो 0 पर लौटें।

इसलिए, यदि इनपुट nums =[1,0,1,1,1,0,1,1,0] की तरह है, तो आउटपुट 5 होगा क्योंकि स्थिति 5 से 0 को हटाकर, हम एक सबएरे प्राप्त कर सकते हैं [1 ,1,1,1,1] पांच 1 होते हैं।

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

  • अगर 0 अंकों में नहीं है, तो

    • अंकों का वापसी आकार - 1

  • अगर 1 अंकों में नहीं है, तो

    • वापसी 0

  • a :=एक नई सूची

  • सीएनटी:=0

  • प्रत्येक के लिए मैं अंकों में, करता हूं

    • अगर मैं 0 के समान हूं, तो

      • अगर cnt 0 के समान नहीं है, तो

        • a के अंत में cnt डालें

        • सीएनटी:=0

      • a के अंत में i डालें

      • अन्यथा,

        • सीएनटी:=सीएनटी + 1

  • अगर cnt 0 के समान नहीं है, तो

    • a के अंत में cnt डालें

  • अधिकतम:=0

  • मैं के लिए 0 से ए के आकार की सीमा में, करो

    • अगर a[i] 0 के समान नहीं है, तो

      • अगले पुनरावृत्ति के लिए जाएं

    • अगर एक [i] 0 के समान है और मैं एक -1 के आकार के समान है, तो

      • अधिकतम :=अधिकतम अधिकतम और a[i-1]

    • अन्यथा जब a[i] 0 के समान है और i 0 के समान है, तो

      • अधिकतम :=अधिकतम अधिकतम और a[i+1]

    • अन्यथा जब a[i] 0 के समान हो, तब

      • अधिकतम :=अधिकतम अधिकतम और (a[i+1]+a[i-1])

  • वापसी अधिकतम

उदाहरण

def solve(nums):
   if 0 not in nums:
      return len(nums)-1
   if 1 not in nums:
      return 0
      a = []
      cnt = 0
      for i in nums:
         if i == 0:
            if cnt != 0:
               a.append(cnt)
               cnt = 0
            a.append(i)
         else:
            cnt += 1
      if cnt!=0:
         a.append(cnt)
      Max = 0
      for i in range(len(a)):
         if a[i] != 0:
            continue
         if a[i] == 0 and i == len(a)-1:
            Max = max(Max,a[i-1])
         elif a[i] == 0 and i == 0:
            Max = max(Max,a[i+1])
         elif a[i] == 0:
            Max = max(Max,a[i+1]+a[i-1])
   return Max
nums = [1,0,1,1,1,0,1,1,0]
print(solve(nums))

इनपुट

[1,0,1,1,1,0,1,1,0]

आउटपुट

5

  1. पायथन में बिट्स की एक जोड़ी को स्वैप करने के बाद 1s की सबसे लंबी संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है। यदि हम स्ट्रिंग में वर्णों की अधिकतम एक जोड़ी को स्वैप कर सकते हैं, तो हमें 1s के सबसे लंबे सन्निहित विकल्प की परिणामी लंबाई ज्ञात करनी होगी। इसलिए, यदि इनपुट s =1111011111 जैसा है, तो आउटपुट 9 होगा, क्योंकि हम s[4] और s[9] को लगातार 9 1s प्राप्त करने क

  1. पायथन में K वेतन वृद्धि के बाद सबसे लंबे समय तक समकक्ष सबलिस्ट खोजने का कार्यक्रम

    मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे nums और k कहा जाता है। अब, एक ऑपरेशन पर विचार करें जहां हम किसी एक तत्व को एक बार बढ़ा सकते हैं। यदि हम अधिकतम k बार संचालन कर सकते हैं, तो हमें समान तत्वों वाली सबसे लंबी उपसूची ढूंढनी होगी। इसलिए, यदि इनपुट अंकों की तरह है =[3, 5, 9, 6, 10, 7] k =6,

  1. 2D सरणी में k'th सबसे छोटा तत्व खोजने के लिए पायथन प्रोग्राम

    एक n×n उपयोगकर्ता इनपुट पूर्णांक मैट्रिक्स दिया गया है और k का मान दिया गया है। हमारा कार्य 2D सरणी में kth सबसे छोटे तत्व का पता लगाना है। यहाँ हम पाइथॉन में हेपैक मड्यूल.हीप क्यू (या हीपक) का उपयोग करते हैं। पायथन में, यह heapq मॉड्यूल का उपयोग करके उपलब्ध है। पायथन में इस मॉड्यूल की तकनीक यह है क