CodeWars 여섯 번째 문제
Updated:
Maximum subarray sum
public class Max {
public static int sequence(int[] arr) {
if(arr.length == 0) {
return 0;
}
if(arr.length == 1) {
return arr[0];
}
int max = 0;
int k = arr[0];
for(int i = 0; i < arr.length -1; i++) {
k = k + arr[i+1];
if(k < arr[i+1]) {
k = arr[i+1];
}
if(max < k) {
max = k;
}
}
return max;
}
}
*하 이거 영어 실력이 딸리니 알고리즘 이해도 부족… 어쨌든
*구글 검색으로 찾아보니 Kadane 알고리즘이라는 유명한 문제라더라.
*Kadane 알고리즘
예시1)
-2, 1, -3, 4, -1, 2, 1, -5, 4
-2, 1, -2, 4, 3, 5, 6, 1, 5
예시2)
10, -4, 3, 1, 5, 6, -35, 12, 21, -1
10, 6, 9, 10, 15, 21, -14, 12, 33, 32