How to find the maximum element in a matrix in java

Illustration:

 
Input  : mat[][] = { {1,3,4,19}, {11,10,12,1}, {7,9,0,4,99} }
Output : 99

Methods:

  1. Iterative method (naive approach)
  2. Using the principle of recursion (Bit more optimal approach)

Method 1: Iterative method 

Example 

 
// Java Program to Find the Maximum Element in a Matrix

// Importing input output classes
import java.io.*;

// Main class
class GFG {

	// Method 1
	// To find the maximum element
	static int max(int mat[][])
	{
		// Declaring and initializing varialble to unity
		// holding the maximum element value
		int max = 0;

		// Iterating over matrix
		// using nested for loops

		// Outer loop for rows
		for (int i = 0; i < mat.length; ++i) {

			// Inner loop for columns
			for (int j = 0; j < mat[0].length; ++j) {

				// Storing the maximum element
				max = Math.max(mat[i][j], max);
			}
		}

		// Return the maximum element
		return max;
	}

	// Method 2
	// Main driver method
	public static void main(String[] args)
	{
		// Custom input 2D matrix
		int mat[][] = { { 1, 3, 4, 19 },
						{ 11, 10, 12, 1 },
						{ 7, 9, 0, 99 } };

		// Calling the method 1 to get max element
		// and storing that integer element
		int max_element = max(mat);

		// Printing the maximum element
		System.out.println(max_element);
	}
}

Output

99

Method 2: Using the principle of recursion 

Procedure:

  • Recursively call every element of the matrix to the last element of the matrix.
  • Return the max of the current element to the next recursive call element.

Example

// Java Program to Find the Maximum Element in a Matrix
// Using Recursion

// Importing input output classes
import java.io.*;

// main class
class GFG {

	// Method 1
	// To find the max element
	static int max(int mat[][], int i, int j)

	{
		// Handling the base cases
		if (j == mat[0].length && i < mat.length) {

			// Changing the row and column index
			j = 0;
			++i;
		}

		// Genric case
		if (i == mat.length) {

			// Simply return
			return 0;
		}

		// By far if we reach here then
		// return the max element
		return Math.max(mat[i][j], max(mat, i, j + 1));
	}

	// Method 2
	// Main driver method
	public static void main(String[] args)
	{
		// Custom input 2D array
		int mat[][] = { { 1, 3, 4, 19 },
						{ 11, 10, 12, 1 },
						{ 7, 9, 0, 99 } };
		// Calling the method 1 that is recursie function to
		// find out maximum element
		int max_element = max(mat, 0, 0);

		// Print and display the maximum element
		System.out.println(max_element);
	}
}

Output

99

 

Submit Your Programming Assignment Details