sumArray
숫자들의 배열이 주어졌을 때, 배열 안의 "연속되는" 원소들을 더해서 얻을 수 있는 최대 값을 계산하십시오.
단일 배열 원소도 "연속되는" 원소로 간주합니다.
참고로, 구현한 함수의 시간 복잡도는 O(n)이며 공간(메모리) 복잡도는 O(1)입니다.
예시 1:
sumArray([1, 2, 3]); // => 6
예시 2:
sumArray([1, 2, 3, -4]); // [1, 2, 3]의 합 === 6
예시 3:
sumArray([1, 2, 3, -4, 5]); // [1, 2, 3, -4, 5]의 합 === 7
예시 4:
sumArray([4, -1, 5]); // => [4, -1, 5]의 합 === 8
예시 5:
sumArray([10, -11, 11]); // => 11 (단일 배열 원소)
const sumArray = function(array) {
//TODO: 코드를 여기에 작성합니다.
//예시
[-1, 1, 2, -3 ,5, -3]
// 현재값과 다음값을 더했을때 값이 다음값보다 작아진다면 현재값은 최개값을 낮추는 값이다.
// 그런경우에는 다음값부터 다시 시작하도록 한다.
[-5, 6, -3, 2, 1]
let curr =array[0];
let max =array[0];
for(let i=1; i<array.length; i++){
curr = Math.max(array[i], curr+array[i]);
max = Math.max(curr, max) // 연속하는 최대값들이 갱신되면 변경되는부분
}
return max;
};