Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm mảng con có JavaScript tổng tối đa

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng Số. Mảng số có thể chứa cả số dương và số âm.

Mục đích của hàm của chúng ta là tìm mảng con từ mảng (có độ dài bất kỳ), mà các phần tử của nó khi được tổng hợp sẽ cho tổng lớn nhất. Sau đó, hàm sẽ trả về tổng các phần tử của mảng con đó.

Ví dụ -

Nếu mảng đầu vào là -

const arr = [-2,1,-3,4,-1,2,1,-5,4];

Sau đó, đầu ra phải là -

const output = 6

bởi vì, [4, -1,2,1] có tổng lớn nhất là 6.

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

6