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

पायथन में सभी संभावित वैध पथों से अधिकतम अंक खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो सरणियाँ हैं nums1 और nums2। एक वैध पथ निम्नानुसार परिभाषित किया गया है -

  • पार करने के लिए nums1 या nums2 चुनें (इंडेक्स-0 से)।

  • सरणी को बाएँ से दाएँ पार करें।

अब, यदि हम nums1 और nums2 में मौजूद किसी भी मान से आगे बढ़ रहे हैं तो हम पथ को अन्य सरणी में बदल सकते हैं। यहां स्कोर एक मान्य पथ में अद्वितीय मानों का योग है। हमें सभी संभावित वैध पथों में से अधिकतम अंक प्राप्त करना होगा। अगर उत्तर बहुत बड़ा है तो रिटर्न परिणाम मॉड्यूलो 10^9+7.

इसलिए, यदि इनपुट nums1 =[3,5,6,9,11] nums2 =[5,7,9,10] जैसा है, तो आउटपुट 35 होगा क्योंकि -

  • nums1 से शुरू होने वाले मान्य पथ हैं:[3,5,6,9,11], [3,5,6,9,10], [3,5,7,9,10], [3,5,7, 9,11]

  • nums2 से शुरू होने वाले मान्य पथ हैं:[5,7,9,10], [5,6,9,11], [5,6,9,10], [5,7,9,11]

पायथन में सभी संभावित वैध पथों से अधिकतम अंक खोजने का कार्यक्रम

तो अधिकतम [3,5,7,9,11] है।

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

  • M:=nums1 का आकार, N:=nums2 का आकार

  • sum1 :=0, sum2 :=0

  • मैं:=0, जे:=0

  • रेस :=0

  • जबकि मैं <एम और जे <एन, करते हैं

    • अगर nums1[i]

      • sum1 :=sum1 + nums1[i]

      • मैं :=मैं + 1

    • अन्यथा जब nums1[i]> nums2[j], तब

      • sum2 :=sum2 + nums2[j]

      • जे:=जे + 1

    • अन्यथा,

      • res :=res + अधिकतम योग1, (sum2 + nums1[i])

      • मैं :=मैं + 1

      • जे:=जे + 1

      • योग1 :=0

      • sum2 :=0

  • जबकि मैं <एम, करता हूं

    • sum1 :=sum1 + nums1[i]

    • मैं :=मैं + 1

  • जबकि j

    • sum2 :=sum2 + nums2[j]

    • जे:=जे + 1

  • वापसी (res + अधिकतम योग 1, योग 2) मॉड 10^9+7

उदाहरण

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

def solve(nums1, nums2):
   M, N = len(nums1), len(nums2)
   sum1, sum2 = 0, 0
   i, j = 0, 0
   res = 0
   while i < M and j < N:
      if nums1[i] < nums2[j]:
         sum1 += nums1[i]
         i += 1
      elif nums1[i] > nums2[j]:
         sum2 += nums2[j]
         j += 1
      else:
         res += max(sum1, sum2) + nums1[i]
         i += 1
         j += 1
         sum1 = 0
         sum2 = 0

   while i < M:
      sum1 += nums1[i]
      i += 1
   while j < N:
      sum2 += nums2[j]
      j += 1
   return (res + max(sum1, sum2)) % 1000000007

nums1 = [3,5,6,9,11]
nums2 = [5,7,9,10]
print(solve(nums1, nums2))

इनपुट

[3,5,6,9,11], [5,7,9,10]

आउटपुट

35

  1. शब्दकोश में सभी वस्तुओं का योग खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन − हमें एक डिक्शनरी दी गई है, और हमें डिक्शनरी में 3 सबसे ज्यादा वैल्यू प्रिंट करने की जरूरत है। समस्या कथन के तीन दृष्टिकोण नीचे दिए गए हैं: दृष्टिकोण 1 - चलने योग्य शब्दकोश से योग की गणना करना उदाहरण # sum function d

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

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

  1. दिए गए स्ट्रिंग से सभी संभावित वैध आईडी पता उत्पन्न करने के लिए पायथन प्रोग्राम

    तार दिया गया है। स्ट्रिंग में केवल अंक होते हैं। हमारा काम सभी संभावित मान्य आईपी एड्रेस संयोजनों की जांच करना है। यहां पहले हम स्ट्रिंग की लंबाई की जांच करते हैं और फिर । से विभाजित करते हैं। फिर हम । के विभिन्न संयोजनों की जांच करते हैं। उदाहरण Input : 255011123222 Its not a valid IP address. In