Cho mảng số (có âm, dương). Tìm mảng con liên tiếp có tổng lớn nhất (thuật toán Kadane).
Ví dụ
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));
Kết quả
6