समस्या
जावास्क्रिप्ट फ़ंक्शन जो पहले और एकमात्र तर्क के रूप में इंटीजर, एआर की एक सरणी लेता है।
हमारे फ़ंक्शन को एक इंडेक्स जोड़ी (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