Madhu1
<p>public class Main<br />
{<br />
public static int maxSubarrayValue(int[] mea) {<br />
// Initialize val to a very small number<br />
int val = -123456789;<br />
int n = mea.length;</p>
<p> // Iterate over all possible subarray sizes<br />
for (int count = 1; count <= n; count++) {<br />
// Iterate over all possible starting indices for subarrays of the current size<br />
for (int i = 0; i <= n - count; i++) {<br />
// Extract the subarray<br />
int[] subarray = new int[count];<br />
System.arraycopy(mea, i, subarray, 0, count);</p>
<p> // Find the minimum value in the subarray<br />
int minVal = findMin(subarray);</p>
<p> // Calculate the value for this subarray<br />
int currentVal = count * minVal;</p>
<p> // Update the maximum value<br />
val = Math.max(val, currentVal);</p>
<p> // Print debug information<br />
System.out.println("Checking the min in " + java.util.Arrays.toString(subarray));<br />
System.out.println("min is " + minVal + " actual val is " + currentVal);<br />
}<br />
}</p>
<p> // If val is still the initial very small number, return 0<br />
if (val == -123456789) {<br />
return 0;<br />
}</p>
<p> return val;<br />
}</p>
<p> private static int findMin(int[] array) {<br />
int min = array[0];<br />
for (int i = 1; i < array.length; i++) {<br />
if (array[i] < min) {<br />
min = array[i];<br />
}<br />
}<br />
return min;<br />
}<br />
<br />
public static void main(String[] args) {<br />
int[] mea = {10,80,30,500,70,40,20};<br />
int result = maxSubarrayValue(mea);<br />
System.out.println("Max value: " + result);<br />
}<br />
}</p>