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

पायथन में न्यूनतम संख्या में संचालन के साथ समान योग सरणियों को खोजने का कार्यक्रम

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

इसलिए, यदि इनपुट nums1 =[1,5,6], nums2 =[4,1,1] जैसा है, तो आउटपुट 2 होगा क्योंकि हम nums2 को [4,1,1] से [4, 1,6] पहले ऑपरेशन में, और [4,2,6] दूसरे ऑपरेशन में इसे nums1 के बराबर बनाने के लिए।

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

  • s1 :=nums1 में सभी तत्वों का योग

  • s2 :=nums2 में सभी तत्वों का योग

  • सूची nums1 को सॉर्ट करें और सूची nums2 को सॉर्ट करें

  • अगर s1> s2, तो

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

    • स्वैप s1 और s2

  • उत्तर:=0

  • बाएँ :=0, दाएँ :=nums2 का आकार -1

  • जबकि बाएँ =0, करें

    • अगर s1 s2 के समान है, तो

      • वापसी उत्तर

    • curr_left :=nums1[बाएं] यदि बाएं <अंक 1 की लंबाई, अन्यथा 7

    • curr_right :=nums2[दाएं] अगर सही>=0 अन्यथा 0

    • अगर 6-curr_left>=curr_right-1, तो

      • s1 :=s1 + न्यूनतम 6-curr_left और s2-s1

      • बाएँ :=बाएँ + 1

    • अन्यथा,

      • s2 :=s2 - न्यूनतम curr_right-1 और s2-s1

      • दाएँ :=दाएँ - 1

    • उत्तर:=उत्तर + 1

  • वापसी -1 यदि s1 s2 के समान नहीं है अन्यथा उत्तर

उदाहरण

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

def solve(nums1, nums2):
   s1 = sum(nums1)
   s2 = sum(nums2)
   nums1.sort()
   nums2.sort()
   if s1>s2:
      nums1, nums2 = nums2, nums1
      s1, s2 = s2, s1

   ans = 0
   left, right = 0, len(nums2)-1
   while(left<len(nums1) or right>=0):
      if s1==s2:
         return ans
      curr_left = nums1[left] if left<len(nums1) else 7
      curr_right = nums2[right] if right>=0 else 0
      if 6-curr_left>=curr_right-1:
         s1+= min(6-curr_left, s2-s1)
         left+=1
      else:
         s2-= min(curr_right-1, s2-s1)
         right-=1
      ans+=1
   return -1 if s1!=s2 else ans

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

इनपुट

[1,5,6], [4,1,1]

आउटपुट

2

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

    मान लीजिए कि हमारे पास एक नंबर स्टार्ट है और दूसरा नंबर एंड (स्टार्ट <एंड) है, हमें इन ऑपरेशंस का उपयोग करके स्टार्ट टू एंड को कन्वर्ट करने के लिए आवश्यक ऑपरेशंस की न्यूनतम संख्या ज्ञात करनी होगी - 1 से वृद्धि 2 से गुणा करें इसलिए, यदि इनपुट प्रारंभ =5, अंत =11 जैसा है, तो आउटपुट 2 होगा, क्योंकि

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक संख्या दी गई है, हमें संख्या के सभी सम गुणनखंडों का योग प्रदर्शित करना होगा। दृष्टिकोण हम जाँचते हैं कि क्या संख्या विषम है, फिर कोई सम गुणनखंड नहीं हैं, इसलिए 0 लौटाएँ। यदि संख्या सम है, तो हम गणना के माध्

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट को देखते हुए, दी गई संख्या के गुणनखंडों का न्यूनतम योग ज्ञात करें। यहां हम सभी कारकों और उनके संगत योग की गणना करेंगे और फिर उनमें से न्यूनतम का पता लगाएंगे। इसलिए संख्या के गुणनफल का न्यूनतम योग ज्