w3resource

Java: Find the smallest length of a contiguous subarray of which the sum is greater than or equal to specified value

Java Array: Exercise-70 with Solution

Write a Java program to find the smallest length of a contiguous subarray of which the sum is greater than or equal to a specified value. Return 0 instead.

Example:
Input :
nums = {1, 2, 3, 4, 6}
Output:
Minimum length of a contiguous subarray of which the sum is 8, 2

Sample Solution:

Java Code:

import java.util.Arrays;
public class solution {
  public static void main(String[] args)
  {
    int[] nums = {1, 2, 3, 4, 6};
	int m_len = 8;
    int result = min_SubArray_length(8, nums);
	System.out.printf("\nOriginal array: "+Arrays.toString(nums));
	System.out.printf("\nMinimum length of a contiguous subarray of which the sum is %d, %d ",m_len, result);
  }

  public static int min_SubArray_length(int s, int[] nums) {
    int sum = 0, ctr = 0, min_len = Integer.MAX_VALUE;
    for (int i = 0, j = 0; j < nums.length; ) {
      if (nums[j] >= s) {
        return 1;
      } else {
        sum += nums[j];
        ctr++;
        if (sum >= s) {
          min_len = Math.min(min_len, ctr);
          while (j > i) {
            sum -= nums[i];
            ctr--;
            i++;
            if (sum < s) break;
            min_len = Math.min(min_len, ctr);
          }
        }
      }
      j++;
    }
    if (min_len == Integer.MAX_VALUE) {
      return 0;
    }
    return min_len;
  }
}

Sample Output:

Original array: [1, 2, 3, 4, 6]
Minimum length of a contiguous subarray of which the sum is 8, 2

Flowchart:

Flowchart: Find the smallest length of a contiguous subarray of which the sum is greater than or equal to specified value.

Java Code Editor:

Improve this sample solution and post your code through Disqus

Previous: Write a Java program to find minimum subarray sum of specified size in a given array of integers.
Next: Write a Java program to form the largest number from a given list of non negative integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

Java: Tips of the Day

Oddness Check

Is it possible to use this code to accurately determine the odd number?

public boolean oddOrNot(int num) {
  return num % 2 == 1;
}

I hope you noticed a trick. If we decide to check a negative odd number in such a way (-5, for example), the remainder of the division will not be equal to one (what does it mean?) Therefore, use a more accurate method:

public boolean oddOrNot(int num) {
  return (num & 1) != 0;
}

It not only solves the problem of negative numbers, but also works more productively than its predecessor. Arithmetic and logical operations are performed much faster than multiplication and division.

Ref: https://bit.ly/3giyonA

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook