Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

최대 합이 있는 하위 배열 찾기 JavaScript

<시간/>

Numbers 배열을 취하는 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