궁금한게 많은 개발자 노트

[ leetcode ] 209. Minimum Size Subarray Sum 본문

Algorithm

[ leetcode ] 209. Minimum Size Subarray Sum

궁금한게 많은 개발자 2023. 7. 7. 13:58

해당 문제는 숫자로 이루어진 배열에서 target 숫자보다 같거나 큰 가장 짧은 sub array길이를 구하는 문제입니다.

two point로 i, j가 움직인다면 i는 배열을 순회하며 새로운 숫자를 sum에 더하고, j도 0부터 시작하며 sum이 target보다 같거나 크다면 앞에서부터 하나씩 제거하면서 target을 넘는 가장 작은 길이를 업데이트합니다.

#define min(a,b)((a) > (b) ? (b) : (a))

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int answer = INT_MAX;
        int sum = 0;
        int j = 0;
        for (int i = 0; i < nums.size(); i++) {
        	sum += nums[i];
            for (; j <= i && sum >= target; j++) {
            	answer = min(answer, i - j + 1);
                sum -= nums[j];
            }
        }
        return answer == INT_MAX ? 0 : answer;
    }
};
Comments