## Rahul And Minimum Subarray in java

Rahul is a programming enthusiast. He is currently learning about arrays/lists. One day his teacher asked him to solve a very difficult problem.

The problem was to find the length of the smallest subarray(subarray is a contiguous part of an array/list) from the given array/list `ARR` of size `N` with its sum greater than a given value `X`. If there is no such possible subarray return 0.

Example:

Given an `ARR`: [1, 2, 21, 7, 6, 12] and a number `X`: 23.

The length of the smallest subarray is 2 as the subarray is [21, 7].

Note: Here are multiple subarrays whose sum is greater than `X` such as [1, 2, 21] or [7, 6, 12] but we have to choose the minimum length subarray.

### Input Format:

The first line will contain two integers `N` and `X` that denote the size of the `ARR` and the minimum value of the substring to be created from the array `ARR` respectively.

The second linecontains `N` space-separated integers `ARR[i]`, the elements of array `ARR`.

### Output Format:

Return an integer denoting the length of the minimum subarray whose sum is greater than `X`.

### Example 1:

Input:

```5 11
9 1 5 3 9
```

Output:

```2
```

Explanation:

The length of the minimum subarray is 2. The subarray is [3, 9] as the sum is 12 which is greater than the given value 11.

### Example 2:

Input:

```4 8
5 1 2 1
```

Output:

```4
```

Explanation:

The length of the minimum subarray is 4. The subarray is [5,1, 2, 1] as the sum is 9 which is greater than the given value 8.

### Constraints:

1 <= N <= 10^3

1 <= X <= 10^9

0 <= A[i] <= 10^9

## Solution of Rahul And Minimum Subarray in java:–

```import java.util.*;
import java.lang.*;
import java.io.*;

public class Main
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int x = sc.nextInt();
int A[] = new int[n];
for(int i=0;i<n;i++){
A[i] = sc.nextInt();
}
int sum = 0;
int ans = (int)1e9;
int i = 0, j= 0;
while(j<n){
sum += A[j];
while(sum>x && i<=j){
ans = Math.min(ans, j-i+1);
sum -= A[i];
i++;
}
j++;
}
if(ans==(int)1e9)ans = 0;
System.out.println(ans);

}
}```
Tags: No tags