ปัญหา
ฟังก์ชัน 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