เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของ Numbers อาร์เรย์ของตัวเลขสามารถมีทั้งตัวเลขบวกและลบได้
จุดประสงค์ของฟังก์ชันของเราคือการค้นหาอาร์เรย์ย่อยจากอาร์เรย์ (ความยาวเท่าใดก็ได้) ซึ่งองค์ประกอบเมื่อรวมแล้วจะให้ผลรวมสูงสุด จากนั้นฟังก์ชันควรคืนค่าผลรวมขององค์ประกอบของอาร์เรย์ย่อยนั้น
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr = [-2,1,-3,4,-1,2,1,-5,4];
จากนั้นผลลัพธ์ควรเป็น −
const output = 6
เพราะ [4,-1,2,1] มีผลรวมมากที่สุดคือ 6.
ตัวอย่าง
const arr = [-2,1,-3,4,-1,2,1,-5,4]; const maxSubArray = (arr = []) => { let sum = arr[0], max = arr[0]; for (let i = 1; i < arr.length; ++i){ sum = Math.max(sum + arr[i], arr[i]), max = Math.max(max, sum); }; return max; }; console.log(maxSubArray(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
6