양의 정수 배열 nums과 양의 정수가 주어지면 target, a의 최소 길이를 반환합니다.
하위 배열
그 합계가 .보다 크거나 같습니다 target . 그러한 하위 배열이 없으면 0대신 반환하십시오.
요구사항 파악
배열의 왼쪽부터 오르쪽까지의 합이 주어진 타겟보다 크면 왼쪽을 하나씩 이동하는 슬라이드 윈도우를 만들면 풀수있겠다!
핵심 코드 파악
if(int i = 0 ; i< nums.length; i++{
sum = nums[i] + sum
while(sum>=target){
sum = sum - nums[left]
left ++;
}
}
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int minLength = Integer.MAX_VALUE;
int left = 0;
int sum = 0;
for (int right = 0; right < nums.length; right++) {
sum += nums[right];
while (sum >= target) {
minLength = Math.min(minLength, right - left + 1);
sum -= nums[left];
left++;
}
}
return minLength == Integer.MAX_VALUE ? 0 : minLength;
}
}