/*
Given an array of positive integers nums and a positive integer target, return the minimal length of a
subarray
whose sum is greater than or equal to target. If there is no such subarray, return 0 instead.
Example 1:
Input: target = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: The subarray [4,3] has the minimal length under the problem constraint.
Example 2:
Constraints:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104
*/
import java.util.*;
import java.lang.*;
import java.io.*;
// The main method must be in a class named "Main".
class Main {
public static int minSubArrayLen(int target, int[] nums) {
int n = nums.length;
int minLength = Integer.MAX_VALUE;
int left = 0;
int sum = 0;
for (int right = 0; right < n; 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;
}
public static void main(String[] args) {
// Example usage:
int target1 = 7;
int[] nums1 = {2, 3, 1, 2, 4, 3};
System.out.println(minSubArrayLen(target1, nums1)); // Output: 2
int target2 = 4;
int[] nums2 = {1, 4, 4};
System.out.println(minSubArrayLen(target2, nums2)); // Output: 1
int target3 = 11;
int[] nums3 = {1, 1, 1, 1, 1, 1, 1, 1};
System.out.println(minSubArrayLen(target3, nums3)); // Output: 0
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: