समस्या
JavaScript फ़ंक्शन जो पूर्णांकों की एक सरणी arr को पहले और एकमात्र आर्गुमेंट के रूप में लेता है।
हमारे फ़ंक्शन को एक इंडेक्स जोड़ी (i, j) चुननी चाहिए जैसे कि (arr[i] + arr[j]) + (i - j) सरणी में सभी इंडेक्स जोड़ियों में अधिकतम हो। हमारे फ़ंक्शन को फिर अधिकतम मान वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [8, 1, 5, 2, 6];
तो आउटपुट होना चाहिए -
const output = 11;
आउटपुट व्याख्या
क्योंकि यदि हम i = 0 और j = 2 चुनते हैं तो मान होगा -
(8 + 5) + (0 - 2) = 11
जो किसी भी इंडेक्स जोड़ी के लिए वास्तव में अधिकतम है।
उदाहरण
इसके लिए कोड होगा -
const arr = [8, 1, 5, 2, 6];
const findMaximum = (arr = []) => {
let max = arr[0] + 0;
let res = -Infinity;
for(let i = 1; i < arr.length; i++){
res = Math.max(res, max + arr[i] - i);
max = Math.max(arr[i] + i, max);
};
return res;
};
console.log(findMaximum(arr));
आउटपुट
कंसोल में आउटपुट होगा -
11