ধরুন আমাদের কাছে A এবং B নামে দুটি সংখ্যার তালিকা আছে এবং তাদের দৈর্ঘ্য একই। আমাদের সব 0 ≤ i
সুতরাং, যদি ইনপুটটি A =[2, 4, 10, 6] B =[3, 4, 7, 5] এর মত হয়, তাহলে আউটপুট হবে 14, যেমন i =0 এবং j =2 এবং আমরা পাই | 2 - 10| + |3 - 7| + |1 - 3|।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- উত্তর :=0
- n :=a এর আকার
- প্রতি জোড়ার জন্য (s, t) [(-1, -1),(-1, 1),(1, -1) ,(1, 1) ], do
- cur_min :=অসীম
- cur_max :=-অনন্ত
- আমি 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