# Java Program to Find the Maximum Element in a Matrix

• Last Updated : 28 Jul, 2022

Given a multi-dimensional 2D matrix of n rows and m column order N × M. The task is to find the maximum element in the given matrix.

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

The approach is simple to iterate every element of the matrix one by one and store the maximum of two elements in the max variable as used below in the program and returns the max variable that contains the maximum element of the matrix.

Example

## Java

 `// 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 variable 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`

Time Complexity: O(n2)

Auxiliary Space: O(1)

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

 `// 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;``        ``}` `        ``// Generic 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 recursive 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`

Time Complexity: O(n)

Auxiliary Space: O(n)

My Personal Notes arrow_drop_up