Find if there is a rectangle in binary matrix with corners as 1.
Input: mat[][] = {{1, 0, 0, 1, 0}, {0, 0, 1, 0, 1}, {0, 0, 0, 1, 0}, {1, 0, 1, 0, 1}}
Output: YES
Note: as there exists –
1 0 1
0 1 0
1 0 1
public class CheckRectangle { static boolean isValidRectangel(int mat[][]) { int row = mat.length; if (row == 0) return false; int column = mat[0].length; for (int i = 0; i < row; i++) for (int j = 0; j < column; j++) if (mat[i][j] == 1) { for (int k = i + 1; k < row; k++) for (int l = j + 1; l < column; l++) if (mat[i][l] == 1 && mat[k][j] == 1 && mat[k][l] == 1) return true; } return false; } public static void main(String[] args) { int mat[][] = { { 1, 0, 0, 1, 0 }, { 0, 0, 1, 0, 1 }, { 0, 0, 0, 1, 0 }, { 1, 0, 1, 0, 1 } }; if (isValidRectangel(mat)) { System.out.print("YES"); } else { System.out.print("NO"); } } }
Thanks and Regards,
Solution provided by Nilmani Prashanth