找到具有最大和的子陣列


我們需要編寫一個接受數字陣列的 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

更新於: 23-11-2020

487 次瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始吧
廣告