🔍 문제
주어진 배열안에서 최대 부분합 구하기 문제이다.
✏️ 풀이 - JS
MaxProfit 문제를 풀 때 카데인 알고리즘을 공부했었기 때문에 바로 풀 수 있었다. 시간복잡도는 O(N)이다.
카데인 알고리즘에 대한 포스트 👉 Dynamic Programming - Kadane’s Algorithm (카데인 알고리즘)
function solution(A) {
if(A.length === 1) return A[0];
let localMaxSum = A[0];
let globalMaxSum = A[0];
for(let i = 1 ; i < A.length; i++) {
localMaxSum = Math.max(A[i], localMaxSum + A[i]);
globalMaxSum = Math.max(globalMaxSum, localMaxSum);
}
return globalMaxSum
}
'Algorithm > 문제풀이' 카테고리의 다른 글
Codility Lesson10 - CountFactors (0) | 2019.08.16 |
---|---|
Codility Lesson9 - MaxDoubleSliceSum (0) | 2019.08.14 |
Codility Lesson9 - MaxProfit (2) | 2019.08.13 |
Codility Lesson8 - Dominator (0) | 2019.08.12 |
Codility Lesson7 - Nesting (0) | 2019.08.12 |