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

पायथन में न्यूनतम निरपेक्ष योग अंतर खोजने का कार्यक्रम

मान लीजिए कि हमारे पास समान आकार के दो सकारात्मक मान वाले सरणियाँ nums1 और nums2 हैं। इन दो सरणियों का पूर्ण योग है |nums1[i] - nums2[i]| का योग प्रत्येक 0 <=i

इसलिए, यदि इनपुट nums1 =[2,8,6], nums2 =[3,4,6] जैसा है, तो आउटपुट 3 होगा क्योंकि, हम दो संभावित इष्टतम समाधान ढूंढ सकते हैं

  • इंडेक्स 1 के एलिमेंट को इंडेक्स 0:[2,8,6] => [2,2,6], या

    के एलिमेंट से बदलें
  • इंडेक्स 1 के एलिमेंट को इंडेक्स 2 के एलिमेंट से बदलें:[2,8,6] => [2,6,6]।

उन दोनों को |2-3| . का योग अंतर मिलता है + (|2-4| या |6-4|) + |6-6| =3.

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

  • अगर nums1 nums2 के समान है, तो

    • वापसी(0)

  • minn_diff :=-इन्फिनिटी

  • इंडस्ट्रीज़:=-1

  • मैं के लिए 0 से लेकर nums1 - 1 के आकार तक के लिए, करें

    • अगर |nums1[i]-nums2[i]|> minn_diff, फिर

      • इंडस्ट्रीज़:=मैं

      • minn_diff :=|nums1[i] - nums2[i]|

  • अंतर :=|nums1[ind] - nums2[ind]|

  • अनुक्रमणिका :=भारत

  • मैं के लिए 0 से लेकर nums1 - 1 के आकार तक के लिए, करें

    • अगर मैं भारत के समान नहीं हूं, तो

      • अगर |nums1[i] - nums2[ind]|

        • अनुक्रमणिका :=मैं

        • अंतर :=|nums1[i]-nums2[ind]|

  • योग :=0

  • मैं के लिए 0 से लेकर nums1 - 1 के आकार तक के लिए, करें

    • अगर मैं भारत के समान हूं, तो

      • योग :=योग + |nums1[index] - nums2[i]|

    • अन्यथा,

      • योग :=योग + |nums1[i] - nums2[i]|

  • वापसी योग मोड (10^9 + 7)

उदाहरण

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

def solve(nums1, nums2):
   if(nums1==nums2):
      return(0)

   minn_diff = float('-inf')
   ind = -1
   for i in range(len(nums1)):
      if(abs(nums1[i]-nums2[i]) > minn_diff):
         ind = i
         minn_diff = abs(nums1[i]-nums2[i])
   
   diff = abs(nums1[ind]-nums2[ind])
   index = ind
   for i in range(len(nums1)):
      if(i!=ind):
         if(abs(nums1[i]-nums2[ind])<diff):
            index = i
            diff = abs(nums1[i]-nums2[ind])

   summ = 0
   for i in range(len(nums1)):
      if(i==ind):
         summ += abs(nums1[index]-nums2[i])
      else:
         summ += abs(nums1[i]-nums2[i])
   return(summ%(10**9 + 7))

nums1 = [2,8,6]
nums2 = [3,4,6]
print(solve(nums1, nums2))

इनपुट

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

आउटपुट

3

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

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

  1. एक सूची में सभी जोड़ों के बीच पूर्ण अंतर का योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक सूची इनपुट को देखते हुए, हमें सूची में सभी जोड़ों के बीच पूर्ण अंतर का योग खोजने की जरूरत है। गणना करें () विधि एक काउंटर को एक पुनरावर्तनीय में जोड़ती है और इसे एन्यूमरेट ऑब्जेक्ट प्रकार के र

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

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