for the same image, it is filled with 0s and 1s. It may have multiple rectangles filled with 0s. The rectangles are separated by 1s. Find all the rectangles.
public class Main {
public List<List<Integer>> findMultipleRectangle(int[][] board)
{
List<List<Integer>> res = new ArrayList<>();
for(int i = 0; i< board.length; i++)
{
for (int j = 0; j< board[0].length; j++)
{
if(board[i][j] == 0)
{
List<Integer> rectangle = new ArrayList<Integer>();
rectangle.add(i);
rectangle.add(j);
board[i][j] = 1;
int topLeftX = i;
int topLeftY = j;
while(topLeftX < board.length && board[topLeftX][j] == 0)
{
board[topLeftX][j] = 1;
topLeftX++;
}
while(topLeftY < board[0].length && board[i][topLeftY] == 0)
{
board[i][topLeftY] = 1;
topLeftY++;
}
rectangle.add(topLeftX);
rectangle.add(topLeftY);
res.add(rectangle);
}
}
}
return rectangle;
}
}