মান লক্ষ্য করুন আমাদের কাছে সমান দৈর্ঘ্যের দুটি সংখ্যার তালিকা 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| + |1-3| = 14 পাওয়া যায়।
ans := 0n := len(a)- প্রতিটি জোড়া
(s, t)এর জন্য[(-1,-1), (-1,1), (1,-1), (1,1)]-এ:cur_min := infinity,cur_max := -infinityiকে ০ থেকেnপর্যন্ত লুপ চালান:tmp := s*a[i] + t*b[i] + icur_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