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

पायथन में दो जोड़ों को खोजने का प्रोग्राम जिनके योग का अंतर न्यूनतम है


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

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

समाधान दृष्टिकोण

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

  • distances := एक नई सूची
  • i को 0 से len(nums)-2 तक:
    • j को i+1 से len(nums)-1 तक:
      • [abs(nums[i]-nums[j]), i, j] को distances के अंत में डालें
    • distances को सॉर्ट करें
    • ans := 1e9
    • i को 0 से len(distances)-2 तक:
      • [dist, i1, i2] := distances[i]
      • j := i+1
      • [dist2, i3, i4] := distances[j]
      • जब तक j < len(distances) और {i1,i2,i3,i4} के तत्व यूनिक नहीं हैं:
        • [dist2, i3, i4] := distances[j]
        • j := j+1
      • यदि {i1,i2,i3,i4} के तत्व यूनिक हैं:
        • ans := min(ans, dist2 - dist)
    • ans लौटाएं

    उदाहरण कोड

    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 वापस करें sum := 1, count := 0, temp := 1 जब तक count < n-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, 105, 1

  1. पायथन प्रोग्राम: लिस्ट में सभी पेयर्स के बीच एब्सोल्यूट डिफरेंस का योग ढूंढें पायथन प्रोग्राम: लिस्ट में सभी पेयर्स के बीच एब्सोल्यूट डिफरेंस का योग ढूंढें

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