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

पायथन में दो संख्या सूचियों से सबसे बड़ी दूरी वाली जोड़ी खोजने का प्रोग्राम


मान लीजिए हमारे पास A और B नामक दो संख्याओं की सूचियां हैं, और उनकी लंबाई समान है। हमें सभी 0 <= i < j < n के लिए अधिकतम मान ढूंढना है: |a[i]-a[j]| + |b[i]-b[j]| + |i-j|।

उदाहरण के लिए, यदि इनपुट A = [2, 4, 10, 6] और B = [3, 4, 7, 5] है, तो आउटपुट 14 होगा, जब i=0, j=2 पर |2-10| + |3-7| + |0-2| = 8+4+2=14 मिलता है।

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

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

  • ans := 0, n := len(a)
  • प्रत्येक जोड़ी (s, t) के लिए [(-1,-1), (-1,1), (1,-1), (1,1)] में:
    • cur_min := inf, cur_max := -inf
    • i को 0 से n तक:
      • tmp := s*a[i] + t*b[i] + i
      • cur_min = min(cur_min, tmp)
      • cur_max = max(cur_max, tmp)
    • ans = max(ans, cur_max - cur_min)
  • ans लौटाएं

उदाहरण कोड

class Solution:
    def solve(self, a, b):
        ans = 0
        n = len(a)
        for s, t in [(-1,-1), (-1,1), (1,-1), (1,1)]:
            cur_min = float("inf")
            cur_max = float("-inf")
            for i in range(n):
                tmp = s*a[i] + t*b[i] + i
                cur_min = min(cur_min, tmp)
                cur_max = max(cur_max, tmp)
            ans = max(ans, cur_max - cur_min)
        return ans

ob = Solution()
A = [2, 4, 10, 6]
B = [3, 4, 7, 5]
print(ob.solve(A, B))

इनपुट

[2, 4, 10, 6], [3, 4, 7, 5]

आउटपुट

14

  1. - Python प्रोग्राम से सूची में सबसे बड़ी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम समस्या कथन के समाधान तक पहुंचने के लिए अंतर्निहित फ़ंक्शंस की मदद लेंगे। sort() फ़ंक्शन का उपयोग करना उदाहरण # सूची list1 = [23

  1. पायथन प्रोग्राम: दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजें पायथन प्रोग्राम: दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो सरणियाँ दी गई हैं, हमें दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजने की आवश्यकता है। उदाहरण # sys मॉड्यूल import sys # जोड़ी def print_(ar1, ar2, m, n, x): # अंतर diff = sys.maxsize # इंडेक्स l = 0 r = n-1

  1. - पायथन प्रोग्राम सूची से N सबसे बड़े तत्व खोजने के लिए

    एक पूर्णांक सूची दी गई है, हमारा कार्य सूची में N सबसे बड़े तत्व ढूंढना है। उदाहरण इनपुट : [40, 5, 10, 20, 9] N = 2 आउटपुट: [40, 20] एल्गोरिदम चरण 1: एक पूर्णांक सूची और सबसे बड़ी संख्या की संख्या इनपुट करें। चरण 2: पहले सूची को N बार पार करें। चरण 3: प्रत्येक पारगमन में सबसे बड़ा मान ढूंढें और इसे