How to Find Saddle Point of a Matrix in Java
Today we are going to learn how to find the saddle point of a matrix in Java. As we all know a matrix is a 2-Dimensional array and in it, Saddle point is that element of the matrix which is lowest in its row but the highest in its column.
Saddle Point of a Matrix in Java
There are many ways to solve this problem, One of the solutions is provided here.
Following are the steps to follow-
1. Traverse the row and find the smallest number. Save its column number in a variable.
2. Now traverse the same column check if the row ‘s smallest number is greatest in its column.
3. If yes print the number , if no check for next row.
4. If no such point is there in the array, print no saddle point.
here is the code for the same.
import java.util.Scanner;
/**
* @author darshna
*
*/
public class Saddle_point {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("enter the size of 2d matrix");
int n = s.nextInt();
int arr[][] = new int[n][n];
System.out.println("enter the array:-");
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
arr[i][j] = s.nextInt();
}
int col_max = 0;
for (int i = 0; i < n; i++)
{
int row_min = arr[i][0]; //smallest of row
int col = 0;
for (int j = 1; j < n; j++)
{
if (arr[i][j] < row_min)
{
row_min = arr[i][j];
col = j;
}
}
for (int k = 0; k < n; k++)
{
if (row_min < arr[k][col])
{
col_max = 0;
break;
} else
col_max = row_min;
}
if (col_max != 0)
System.out.println("saddle point " + col_max);
}
}
}
Output:-
enter the size of 2d matrix 3 enter the array:- 1 2 3 4 5 6 7 8 9 saddle point 7
Hope you understand the code.
You may also read:
Can you give variable description and algorithm for this program