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;
}
}
연속된 값을 계속해서 더해가며 최댓값을 저장하는데, 만약 합이 음수가 나오면 다시 새로 시작하여 검사를 반복한다.
합이 음수가 나오면 이전까지 구했던 최댓값에서 그 뒤에 음수나 양수나 수가 나오면 그전의 합인 음수를 더하지 않는 것이 더 크기 때문에 그 전까지 더한 음수 값을 버리고 다시 시작한다.
'Algorithm' 카테고리의 다른 글
[Two Point]uglyNumbers (0) | 2022.11.01 |
---|---|
Rest API (0) | 2022.10.20 |
Binary Search (0) | 2022.10.13 |
Heap Sort (0) | 2022.10.11 |
Merge Sort (0) | 2022.10.11 |