[ LeetCode | Java ] 209. Minimum Size Subarray Sum 📝

dokim·2023년 8월 28일
post-thumbnail

🏷️209. Minimum Size Subarray Sum


1. 문제 설명

  • 주어진 양수로 이루어진 배열 nums와 양수인 정수 target이 있을 때, 합이 target보다 크거나 같은 부분 배열의 최소 길이를 반환하십시오. 그러한 부분 배열이 없는 경우 대신 0을 반환하십시오.

예시 1:

입력: target = 7, nums = [2,3,1,2,4,3]
출력: 2
설명: 하위 배열 [4,3]은 문제 제약 조건 하에서 최소 길이를 갖습니다.

예시 2:

입력: 대상 = 4, 숫자 = [1,4,4]
출력: 1

예시 3:

입력: 대상 = 11, 숫자 = [1,1,1,1,1,1,1,1]
출력: 0

제약:

  • 1 <= target <= 10^9
  • 1 <= nums.length <= 10^5
  • 1 <= nums[i] <= 10^4

2. 접근 방법


3. 구현 코드

class Solution {
    public int minSubArrayLen(int target, int[] nums) {
        
        int min = Integer.MAX_VALUE;
        int sum = 0;
        int left = 0;
        
        for(int right = 0; right < nums.length; right++){
            
            sum += nums[right];     
            
            while (sum >= target){
                min = Math.min(min, right - left + 1);
                sum -= nums[left++]; 
            }
            
        }
        
        return min == Integer.MAX_VALUE ? 0 : min;
    }
}

4. 개선 사항


5. 최종 회고


6. 참고

0개의 댓글