Contents
내가 작성한 코드
내가 작성한 코드
class Solution {
public int[] solution(int[] sequence, int k) {
int left = 0;
int right = 0;
int sum = sequence[0];
// 최적 구간의 시작, 끝 인덱스와 최소 길이
int start = 0;
int end = 0;
int minLength = Integer.MAX_VALUE;
while (right < sequence.length) {
if (sum < k) {
// 오른쪽 확장
right++;
if (right < sequence.length) {
sum += sequence[right];
}
} else {
// k와 같으면 정답 후보
if (sum == k) {
int len = right - left + 1;
if (len < minLength) {
minLength = len;
start = left;
end = right;
}
}
// 왼쪽 줄이기
sum -= sequence[left];
left++;
}
}
return new int[]{start, end};
}
}
Share article