找到具有最大和的子陣列
我們需要編寫一個接受數字陣列的 JavaScript 函式。該數字陣列既包含正數,也包含負數。
我們的函式的目的是從該陣列中找到一個子陣列(任意長度),將它的元素相加得到的最大和。然後,該函式應返回該子陣列的元素和。
例如:-
如果輸入陣列為:-
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
廣告