Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ผลรวมที่ยิ่งใหญ่ที่สุดและความแตกต่างของดัชนีที่น้อยที่สุดใน JavaScript


ปัญหา

ฟังก์ชัน 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