import java.util.Arrays;
class Solution {
public int[] solution(int[] sequence, int k) {
int left = 0, right = -1, sum = 0;
int length = 1000001, sLeft = 0, sRight = 0;
while (right < sequence.length) {
if (sum < k) { // 부분 수열 합이 k보다 작다면
if (++right < sequence.length)
sum += sequence[right];
} else if (k < sum) { // 부분 수열 합이 k를 넘어감
sum -= sequence[left++];
} else { // 합이 k임
if (right - left < length) {
length = right - left;
sLeft = left;
sRight = right;
}
sum -= sequence[left++];
}
}
return new int[] { sLeft, sRight };
}
}
Leave a comment