Minimum Size Subarray Sum

bong bong·2023년 8월 29일

알고리즘

목록 보기
20/31
양의 정수 배열 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;
    }
}
profile
let's go invent tomorrow rather than worrying about what happened yesterday - Steven Paul Jobs

0개의 댓글