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

पायथन में दो सरणियों के योग को बराबर करने के लिए आवश्यक न्यूनतम संचालन खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो सूचियां nums1 और nums2 हैं, जहां दोनों सूचियों में प्रत्येक तत्व 1 से 6 की सीमा में है। अब एक ऑपरेशन पर विचार करें, जिसके द्वारा, हम nums1 या nums2 से एक संख्या का चयन कर सकते हैं और इसके मान को 1 से 6 के बीच की संख्या में अपडेट कर सकते हैं। हमें आवश्यक संक्रियाओं की न्यूनतम संख्या ज्ञात करनी है ताकि इन दोनों सरणियों का योग समान हो। अगर हमें कोई समाधान नहीं मिल रहा है, तो -1 लौटें।

इसलिए, यदि इनपुट nums1 =[1, 4] nums2 =[5, 4, 4] जैसा है, तो आउटपुट 2 होगा, क्योंकि हम nums1 से 6 तक 1 बना सकते हैं, इसलिए nums1 का योग 10 है, फिर बदलें अंक 2 से 1 तक कोई एक 4, तो उसका योग भी 10 होता है

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

  • सा :=nums1 में मौजूद सभी तत्वों का योग

  • एसबी:=nums2 में मौजूद सभी तत्वों का योग

  • अगर सा> एसबी, तो

    • nums1 और nums2 स्वैप करें

    • स्वैप सा और एसबी

  • सूची nums1 को क्रमबद्ध करें

  • सूची nums2 को उल्टे क्रम में क्रमबद्ध करें

  • रेस :=0

  • toadd :=sb - sa

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

  • जोड़ने के दौरान> 0, करें

    • रेस :=रेस + 1

    • अगर मैं

      • resa :=6 - nums1[i]

      • रेसब :=nums2[j] - 1

      • अगर resa> resb, तो

        • toadd :=toadd - resa

        • मैं :=मैं + 1

      • अन्यथा,

        • toadd :=toadd - resb

        • जे:=जे + 1

      • अन्यथा जब मैं <अंक 1 का आकार, तब

        • resa :=6 - nums1[i]

        • toadd :=toadd - resa

        • मैं :=मैं + 1

      • अन्यथा जब j

        • रेसब :=nums2[j] - 1

        • toadd :=toadd - resb

        • जे:=जे + 1

      • अन्यथा,

        • वापसी -1

  • रिटर्न रेस

उदाहरण

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

def solve(nums1, nums2):
   sa = sum(nums1)
   sb = sum(nums2)
   if sa > sb:
      nums1, nums2 = nums2, nums1
      sa, sb = sb, sa

   nums1.sort()
   nums2.sort(reverse=True)
   res = 0
   toadd = sb - sa
   i = 0
   j = 0
   while toadd > 0:
      res += 1
      if i < len(nums1) and j < len(nums2):
         resa = 6 - nums1[i]
         resb = nums2[j] - 1
         if resa > resb:
            toadd -= resa
            i += 1
         else:
            toadd -= resb
            j += 1
      elif i < len(nums1):
         resa = 6 - nums1[i]
         toadd -= resa
         i += 1
      elif j < len(nums2):
         resb = nums2[j] - 1
         toadd -= resb
         j += 1
      else:
         return -1

   return res

nums1 = [1, 4]
nums2 = [5, 4, 4]
print(solve(nums1, nums2))

इनपुट

[2,1,4,3,5,4]

आउटपुट

2

  1. पायथन में एक स्ट्रिंग सबस्ट्रिंग बनाने के लिए आवश्यक न्यूनतम संख्या में संचालन खोजने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास दो तार s और t हैं, हमें t को s का विकल्प बनाने के लिए s के लिए आवश्यक न्यूनतम संक्रियाएँ ज्ञात करनी होंगी। अब, प्रत्येक ऑपरेशन में, हम s में कोई भी स्थिति चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं। इसलिए, यदि इनपुट s =abbpqr, t =bbxy जैसा है, तो आउट

  1. पायथन में दो स्ट्रिंग्स को बराबर बनाने के लिए आवश्यक प्रीप्रोसेस चालों की न्यूनतम संख्या ज्ञात करें

    मान लीजिए कि हमारे पास समान लंबाई के दो स्ट्रिंग्स P और Q हैं, जिनमें केवल लोअर केस लेटर्स हैं, हमें स्ट्रिंग P पर प्री-प्रोसेसिंग मूव्स की न्यूनतम संख्या को गिनना होगा, इसे नीचे के ऑपरेशनों को लागू करने के बाद स्ट्रिंग Q के बराबर बनाने के लिए आवश्यक है - कोई भी अनुक्रमणिका i चुनें और वर्ण pi और

  1. दिए गए दो सरणियों से उप-सरणी खोजें जैसे कि उनके पास पायथन में समान योग है

    मान लीजिए कि हमारे पास दो सरणियाँ P और Q हैं जिनका आकार N है, वे संख्या 1 से N तक धारण कर रहे हैं। हमें दिए गए सरणियों से उप-सरणी ढूंढनी है ताकि उनका योग समान हो। अंत में ऐसे उप-सरणी के सूचकांक वापस करें। अगर कोई समाधान नहीं है, तो -1 लौटें। इसलिए, यदि इनपुट P =[2, 3, 4, 5, 6], Q =[9, 3, 2, 6, 5] जै