দুটি অ্যারে nums এবং values দেওয়া আছে (দেড়েStrictly increasing nums)। 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
এলগরিদম (O(n))
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)) # আউটপুট: 16
ইনপুট / আউটপুট
[1, 2, 7], [-4, 6, 5] 16