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

पायथन में सकारात्मक उत्पाद के साथ उपसरणी की अधिकतम लंबाई खोजने का कार्यक्रम

मान लीजिए कि हमारे पास अंक नामक एक सरणी है, हमें एक उप-सरणी की अधिकतम लंबाई का पता लगाना है, जहां इसके सभी तत्वों का गुणनफल सकारात्मक है। हमें सकारात्मक उत्पाद के साथ एक उप-सरणी की अधिकतम लंबाई ज्ञात करनी है।

इसलिए, यदि इनपुट nums =[2,-2,-4,5,-3] जैसा है, तो आउटपुट 4 होगा क्योंकि पहले चार तत्व एक सबएरे बना रहे हैं जिसका उत्पाद सकारात्मक है।

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

  • उपयोग() फ़ंक्शन को परिभाषित करें। इसमें s, e
  • . लगेगा
  • नकारात्मक:=0
  • ns :=-1, ne :=-1
  • के लिए मैं श्रेणी एस से ई में, करो
    • यदि अंक [i] <0, तो
      • नकारात्मक:=नकारात्मक + 1
      • यदि ns, -1 के समान है, तो
        • ns :=मैं
      • ने:=मैं
  • यदि ऋणात्मक सम है, तो
    • ई-एस+1 लौटाएं
  • अन्यथा,
    • अधिकतम e-ns और ne-s लौटाएं
  • मुख्य विधि से, निम्न कार्य करें -
  • उत्तर:=0
  • s :=-1, e :=-1
  • मैं के लिए 0 से लेकर अंकों के आकार तक, करें
    • यदि nums[i] 0 के समान नहीं है और s -1 के समान है, तो
      • s :=i
    • अन्यथा जब nums[i] 0 के समान है और s -1 के समान नहीं है, तो
      • e :=i-1
      • उत्तर:=अधिकतम उत्तर और उपयोग (ओं, ई)
      • s :=-1, e :=-1
  • यदि s -1 के समान नहीं है और e, -1 के समान है, तो
    • e :=अंकों का आकार -1
    • उत्तर:=अधिकतम उत्तर और उपयोग (ओं, ई)
  • वापसी उत्तर

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

उदाहरण

def util(s, e):
   neg = 0
   ns, ne = -1, -1
   for i in range(s, e+1):
      if nums[i]<0:
         neg += 1
         if ns == -1:
            ns = i
         ne = i

   if neg == 0 or neg %2 == 0:
      return e-s+1
   else:
      return max(e-ns, ne-s)

def solve(nums):
   ans = 0
   s, e = -1, -1

   for i in range(len(nums)):
      if nums[i]!=0 and s == -1:
         s = i
      elif nums[i]==0 and s != -1:
         e = i-1
         ans = max(ans, util(s, e))
         s = -1
         e = -1

   if s!= -1 and e == -1:
      e = len(nums)-1
      ans = max(ans, util(s, e))
      return ans

nums = [2,-2,-4,5,-3]
print(solve(nums))

इनपुट

[2,-2,-4,5,-3]

आउटपुट

4

  1. पायथन का उपयोग करके अधिकतम संभावना के साथ पथ खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास n नोड्स के साथ एक अप्रत्यक्ष भारित ग्राफ है (नोड्स 0 से आगे गिने जाते हैं), यह ग्राफ एज सूची का उपयोग करके इनपुट के रूप में दिया जाता है, प्रत्येक किनारे ई के लिए, उस किनारे की संभावना [ई] को पार करने की सफलता की संभावना है। हमारे पास प्रारंभ और अंत नोड्स भी हैं, हमें शुरुआत स

  1. पायथन प्रोग्राम में अधिकतम उत्पाद और एन के बराबर योग के साथ एन के चार कारक खोजें

    मान लीजिए हमारे पास एक संख्या N है, हमें N के सभी गुणनखंड ज्ञात करने हैं और N के चार गुणनखंडों का गुणनफल इस प्रकार लौटाना है कि:चार गुणनखंडों का योग N के समान हो। चार गुणनखंडों का गुणनफल अधिकतम होता है। उत्पाद को अधिकतम करने के लिए सभी चार कारक एक दूसरे के बराबर हो सकते हैं। 1 2 3 4 5 6 10 12 15 20

  1. पायथन में अधिकतम उत्पाद सबरे

    मान लीजिए कि हमारे पास एक पूर्णांक सरणी है जिसे अंक कहा जाता है, हमें एक सरणी (कम से कम एक संख्या वाले) के भीतर सन्निहित उपसरणी को खोजना होगा जिसमें सबसे बड़ा उत्पाद हो। इसलिए यदि सरणी [2,3,-2,4] है, तो आउटपुट 6 होगा, क्योंकि सन्निहित उप-सरणी [2,3] में अधिकतम उत्पाद है। इसे हल करने के लिए, हम इन चर