Algorithm
LSCS
orioncsy
2022. 10. 18. 10:06
Largest Sum of contiguous Subarray
정수 배열의 연속 부분 배열의 합 중 최댓값 구하기
public class Solution {
public int LSCS(int[] arr) {
for(int i=0; i<arr.length; i++){
temp+=arr[i];
if(temp>LS) LS=temp;
if(temp<0) temp=0;
}
return LS;
}
}
연속된 값을 계속해서 더해가며 최댓값을 저장하는데, 만약 합이 음수가 나오면 다시 새로 시작하여 검사를 반복한다.
합이 음수가 나오면 이전까지 구했던 최댓값에서 그 뒤에 음수나 양수나 수가 나오면 그전의 합인 음수를 더하지 않는 것이 더 크기 때문에 그 전까지 더한 음수 값을 버리고 다시 시작한다.