Maximum Product Subarray In Java Data Structure

In this tutorial we will learn how to get the Maximum Product Subarray In Java. This is a Data Structure Problem which asked in many interviews.

Maximum Product Subarray java
Maximum Product Subarray java

Problem?

You have an array, find the subarray which elements have the maximum product or the multiplication in Java. Recursion is the best way to solving the Data Structure problem.


import java.io.*;
class Maxproduct{
	// rogram to find Maximum Product Subarray

	// Returns the product value
	// of max product subarray.
	static int maxSubarrayProduct(int arr[], int n)
	{

		// max positive product
		// ending at the current position
		int max_ending_here = arr[0];

		// min negative product ending
		// at the current position
		int min_ending_here = arr[0];

		// Initialize overall max product
		int max_so_far = arr[0];

		// /* Traverse through the array.
		// the maximum product subarray ending at an index
		// will be the maximum of the element itself,
		// */
		for (int i = 1; i < n; i++) {
			int temp = Math.max(
				Math.max(arr[i], arr[i] * max_ending_here),
				arr[i] * min_ending_here);
			min_ending_here = Math.min(
				Math.min(arr[i], arr[i] * max_ending_here),
				arr[i] * min_ending_here);
			max_ending_here = temp;
			max_so_far
				= Math.max(max_so_far, max_ending_here);
		}

		return max_so_far;
	}

	// Driver code
	public static void main(String args[])
	{
		int[] arr = { 1,  2,  -3, 10,  7,  -8,  -2,  4,  2 };
		int n = arr.length;
		System.out.printf("Maximum product Sub array %d",
						maxSubarrayProduct(arr, n));
	}
}


Thank for visiting this tutorial. You can comment in the comments section below for any query or doubt. You can learn more about it from here.

Thank You FlutterTPoint
Thank You FlutterTPoint

Don’t miss new tips!

We don’t spam! Read our [link]privacy policy[/link] for more info.

Leave a Comment

Scroll to Top