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

पायथन में मी द्वारा सबएरे मॉड्यूलो का अधिकतम योग खोजने का कार्यक्रम

पायथन में मी द्वारा सबएरे मॉड्यूलो का अधिकतम योग खोजने का कार्यक्रम

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी संख्या है। हमारे पास एक और पूर्णांक m है। हमें इसके किसी भी उप-सरणी मॉड्यूल एम के योग का अधिकतम मान ज्ञात करना है।

इसलिए, यदि इनपुट nums =[1,5,7,3] m =5 जैसा है, तो आउटपुट 3 होगा क्योंकि

  • [1] मॉड 5 =1
  • [5] मॉड 5 =0
  • [7] मॉड 5 =2
  • [3] मॉड 5 =3
  • [1,5] मॉड 5 =1
  • [5,7] मॉड 5 =2
  • [7,3] मॉड 5 =0
  • [1,5,7] मॉड 5 =3
  • [5,7,3] मॉड 5 =0
  • [1,5,7,3] मॉड 5 =1

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

  • csum :=एक सूची और शुरू में इसमें nums[0] mod m डालें
  • पहले मान को छोड़कर प्रत्येक x के लिए अंकों में, करें
    • csum के अंत में (csum + x का अंतिम आइटम) mod m डालें
  • देखा:=एक सूची जिसमें शुरुआत में एकल तत्व है जो कि 0 है
  • अधिकतम_योग:=-1
  • csum में प्रत्येक s के लिए, करें
    • idx :=s को सीन में डालने के लिए सबसे बाईं ओर की स्थिति ताकि सूची को क्रमबद्ध किया जा सके
    • यदि idx <देखा का आकार, तो
      • max_sum :=max_sum और s का अधिकतम
    • अन्यथा,
      • देखे गए सबसे बाईं ओर के इंडेक्स में s डालें ताकि ऐरे को सॉर्ट किया जा सके
    • देखे गए सबसे बाईं ओर के इंडेक्स में s डालें ताकि ऐरे को सॉर्ट किया जा सके
  • अधिकतम_योग लौटाएं

उदाहरण

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

import bisect
def solve(nums, m):
   csum = [nums[0] % m]
   for x in nums[1:]:
      csum.append((csum[-1] + x) % m)

   seen = [0]
   max_sum = -1
   for s in csum:
      idx = bisect.bisect_left(seen, s)
      if idx < len(seen):
         max_sum = max(max_sum, s, (s - seen[idx]) % m)
      else:
         max_sum = max(max_sum, s)
      bisect.insort_left(seen, s)

   return max_sum

nums = [1,5,7,3]
m = 5
print(solve(nums, m))

इनपुट

"pptpp", [(1,1),(1,4),(1,1),(0,2)]

आउटपुट

3

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

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

  1. अधिकतम तीन नंबर खोजने के लिए पायथन प्रोग्राम

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो तीन अंकों से अधिकतम राशि का पता लगाता है। हमारे पास तीन संख्याएँ होंगी, और हमारा लक्ष्य उन तीन संख्याओं में से अधिकतम संख्या ज्ञात करना है। आइए बेहतर समझ के लिए कुछ नमूना परीक्षण मामलों को देखें। Input: a, b, c = 2, 34, 4 Output: 34 Input: a

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

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