เรามีอาร์เรย์ของอาร์เรย์ที่มีตัวเลขอยู่จำนวนหนึ่ง เราต้องเขียนฟังก์ชันที่คืนค่าการรับในอาร์เรย์นั้นและคืนค่าดัชนีของอาร์เรย์ย่อยที่มีผลรวมสูงสุด หากมีอาร์เรย์ย่อยมากกว่าหนึ่งรายการมีผลรวมสูงสุดเท่ากัน เราต้อง คืนค่าดัชนีของ subbarray แรกดังกล่าว
ดังนั้น เรามาเขียนโค้ดสำหรับสิ่งนี้กัน −
ตัวอย่าง
const arr = [[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000,
1001, 857, 1]];
const findMaxSubArray = (arr) => {
const add = (array) => array.reduce((acc, val) => acc+val);
return arr.reduce((acc, val, ind) => {
const sum = add(val);
if(sum > acc.sum){
return {
index: ind,
sum
}
};
return acc;
}, {
index: -1,
sum: -Infinity
}).index;
};
console.log(findMaxSubArray(arr)); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
3