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

दो जोड़ी संख्याओं को खोजने का कार्यक्रम जहां इन जोड़ियों के योग के बीच अंतर को अजगर में कम से कम किया जाता है

मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और हम इसमें से दो जोड़ी संख्याओं का चयन करना चाहते हैं ताकि इन दो जोड़ों के योग के बीच पूर्ण अंतर कम से कम हो।

इसलिए, यदि इनपुट nums =[3, 4, 5, 10, 7] की तरह है, तो आउटपुट 1 होगा, क्योंकि हम इन जोड़ियों को चुन सकते हैं (3 + 7) - (4 + 5) =1। पी>

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

  • दूरी:=एक नई सूची
  • मैं के लिए 0 से लेकर अंकों के आकार - 2 तक, करें
    • j के लिए i + 1 से लेकर अंकों के आकार -1 तक के लिए
      • एक सूची डालें [|nums[i] - nums[j]| , i, j] दूरियों के अंत में
    • सूची दूरियों को क्रमबद्ध करें
    • उत्तर:=1^9
    • मैं के लिए 0 से दूरी के आकार के लिए - 2, करते हैं
      • [जिला, i1, i2] :=दूरियां[i]
      • j :=i + 1
      • [dist2, i3, i4] :=दूरियां[j]
      • जबकि j <दूरियों का आकार और (i1, i2, i3, i4) में तत्व अद्वितीय नहीं हैं, करते हैं
        • [dist2, i3, i4] :=दूरियां[j]
        • j :=j + 1
      • यदि (i1, i2, i3, i4) में तत्व अद्वितीय हैं, तो
        • उत्तर :=न्यूनतम उत्तर और (जिला2 - जिला)
      • वापसी उत्तर

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

उदाहरण कोड

class Solution:
   def solve(self, nums):
      distances = []
      for i in range(len(nums) - 1):
         for j in range(i + 1, len(nums)):
            distances.append((abs(nums[i] - nums[j]), i, j))
      distances.sort()
      ans = 1e9
      for i in range(len(distances) - 1):
         dist, i1, i2 = distances[i]
         j = i + 1
         dist2, i3, i4 = distances[j]
         while j < len(distances) and len({i1, i2, i3, i4}) != 4:
            dist2, i3, i4 = distances[j]
            j += 1
         if len({i1, i2, i3, i4}) == 4:
            ans = min(ans, dist2 - dist)
      return ans

ob = Solution()
nums = [3, 4, 5, 10, 7]
print(ob.solve(nums))

इनपुट

[3, 4, 5, 10, 7]

आउटपुट

1

  1. पायथन में पहली n विषम संख्याओं का योग ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक संख्या n है, हमें पहले n धनात्मक विषम संख्याओं का योग ज्ञात करना है। इसलिए, अगर इनपुट 7 जैसा है, तो आउटपुट 49 होगा [1+3+5+7+9+11+13] =49 इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यदि n, 0 के समान है, तो वापसी 0 योग :=1, गिनती :=0, अस्थायी :=1 गिनते समय

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

    =0. इसलिए, यदि इनपुट p =7 और q =17, r =6 और s =3 जैसा है, तो आउटपुट 0 होगा, जैसा कि 7 की तालिका =[7, 14, 21, 28, 35, 42, 49, ...] और 17 की तालिका =[17, 34, 51, 68, 85, 102, 119, ...], तो 7 की स्थानांतरित तालिका होगी [13, 20, 27, 34, 41, 48, 55 , ...] और 17 की स्थानांतरित तालिका [20, 37, 54, 71, 88,

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

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