मान लीजिए हमारे पास दो ऐरे nums और values हैं, दोनों में इंटीजर हैं और nums के मान सख्ती से बढ़ रहे हैं और उनकी लंबाई भी समान है। हमें इंडेक्स i, j के एक जोड़े के लिए v का मान ढूंढना है, जैसे कि: i ≤ j जो v = values[i] + values[j] + nums[j] - nums[i] को अधिकतम करता है।
उदाहरण के लिए, यदि इनपुट है nums = [1, 2, 7], values = [-4, 6, 5], तो आउटपुट होगा 16, यदि हम i = 1 और j = 2 चुनते हैं तो हमें 6 + 5 + 7 - 2 = 16 मिलता है।
समाधान दृष्टिकोण
एक्सप्रेशन v = (values[i] - nums[i]) + (values[j] + nums[j])। चूंकि i ≤ j, हम values[i] - nums[i] का अधिकतम और values[j] + nums[j] का अधिकतम स्वतंत्र रूप से ढूंढ सकते हैं और उन्हें जोड़ सकते हैं।
ans1 = -inf,ans2 = -infआरंभ करें।- प्रत्येक इंडेक्स
iके लिए:ans1 = max(ans1, values[i] - nums[i])ans2 = max(ans2, values[i] + nums[i])
ans1 + ans2लौटाएं।
पायथन कार्यान्वयन
from math import inf
def solve(nums, values):
ans1 = -inf
ans2 = -inf
for i in range(len(nums)):
ans1 = max(ans1, (values[i] - nums[i]))
ans2 = max(ans2, (values[i] + nums[i]))
return ans1 + ans2
nums = [1, 2, 7]
values = [-4, 6, 5]
print(solve(nums, values))
इनपुट
[1, 2, 7], [-4, 6, 5]
आउटपुट
16