मान लीजिए हमारे पास ए और बी नामक संख्याओं की दो सूची है, और उनकी लंबाई समान है। हमें सभी 0 i
इसलिए, यदि इनपुट ए =[2, 4, 10, 6] बी =[3, 4, 7, 5] जैसा है, तो आउटपुट 14 होगा, जैसे कि i =0 और j =2 और हमें मिलता है | 2 - 10| + |3 - 7| + |1 - 3|.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- उत्तर:=0
- n :=एक का आकार
- प्रत्येक जोड़ी (एस, टी) के लिए [(-1, -1) ,(-1, 1) ,(1, -1) ,(1, 1)] में, do
- cur_min:=अनंत
- cur_max :=-infinity
- मैं के लिए 0 से n की सीमा में, करते हैं
- tmp :=s * a[i] + t * b[i] + i
- cur_min :=न्यूनतम cur_min, tmp
- cur_max :=अधिकतम cur_max, tmp
- उत्तर:=अधिकतम उत्तर, (cur_max - cur_min)
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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