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

पायथन में समान राशि के 3 गैर-अतिव्यापी उप-सूचियों का सबसे बड़ा योग खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है, हमें k आकार की दी गई सूची के तीन गैर-अतिव्यापी उप-सूचियों का सबसे बड़ा योग खोजना होगा।

इसलिए, यदि इनपुट संख्या =[2, 2, 2, -6, 4, 4, 4, -8, 3, 3, 3] k =3 की तरह है, तो आउटपुट 27 होगा, जैसा कि हम चुन सकते हैं सबलिस्ट [2, 2, 2], [4, 4, 4], और [3, 3, 3], कुल योग 27 है।

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

  • पी:=[0]
  • ए में प्रत्येक एक्स के लिए, करें
    • पी के अंत में P[-1] + x डालें
  • Q :=[P[i + K] - P[i] i के लिए 0 से लेकर P - K के आकार तक]
  • उपसर्ग :=Q[सूचकांक 0 से अंत तक]
  • प्रत्यय :=Q[सूचकांक 0 से अंत तक]
  • मैं के लिए 0 से Q-1 के आकार के बीच में, करो
    • उपसर्ग[i + 1] :=अधिकतम उपसर्ग[i + 1], उपसर्ग[i]
    • प्रत्यय[~(i + 1)] :=अधिकतम प्रत्यय[~(i + 1)], प्रत्यय[~i]
  • ret =(Q[i] + उपसर्ग[i - K] + प्रत्यय[i + K]) प्रत्येक i के लिए K से Q - K - 1 के आकार तक के लिए
  • रिटर्न की अधिकतम वापसी

उदाहरण (पायथन)

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

class Solution:
   def solve(self, A, K):
      P = [0]
      for x in A:
         P.append(P[-1] + x)
      Q = [P[i + K] - P[i] for i in range(len(P) - K)]
      prefix = Q[:]
      suffix = Q[:]
      for i in range(len(Q) - 1):
         prefix[i + 1] = max(prefix[i + 1], prefix[i])
         suffix[~(i + 1)] = max(suffix[~(i + 1)], suffix[~i])
      return max(Q[i] + prefix[i - K] + suffix[i + K] for i in range(K, len(Q) - K))
ob = Solution()
nums = [2, 2, 2, -6, 4, 4, 4, -8, 3, 3, 3]
k = 3
print(ob.solve(nums, k))

इनपुट

[2, 2, 2, -6, 4, 4, 4, -8, 3, 3, 3], 3

आउटपुट

27

  1. पायथन प्रोग्राम में सरणी का योग ज्ञात करें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सरणी दी गई है, जिसकी हमें सरणी के योग की गणना करने की आवश्यकता है। योग प्राप्त करने के लिए प्रत्येक अनुक्रमणिका में संपूर्ण सरणी और तत्व को पार करने के लिए पाशविक-बल दृष्टिकोण की चर्चा नीचे प्रत्येक अनुक्रमण

  1. एक सूची का संचयी योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें संचयी राशि के साथ एक सूची बनानी होगी। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # cumulative sum def Cumulative(l):    new = []    cumsum = 0   &nb

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट के रूप में एक सरणी को देखते हुए, हमें दिए गए सरणी के योग की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स अप्रोच का अनुसरण कर सकते हैं, यानी एक सूची को पार करना और प्रत्येक तत्व को एक खा