https://leetcode.com/problems/minimum-size-subarray-sum/description/?envType=study-plan-v2&envId=top-interview-150

C++

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int left = 0;
        int curr_sum = 0;
        int max_length = INT_MAX;

        for(int right = 0; right < nums.size(); right++){
            curr_sum += nums[right];

            while (curr_sum >= target){
                max_length = min(max_length, right - left + 1);
                curr_sum -= nums[left];
                left++;
            }
        }

        return max_length == INT_MAX ? 0 : max_length;
    }
};

Complexity

Here $n$ is the length of nums.