Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,990 questions

51,935 answers

573 users

How to change all elements of row i and column j in a binary matrix to 0 if cell[i, j] is 0 with Java

1 Answer

0 votes
class Program {
    private static void changeRowColumn(int[][] matrix, int row, int col) {
        int rows = matrix.length;  
        int cols = matrix[0].length;
        
    	// -1 = different from the existing zeros
    
    	for (int j = 0; j < cols; j++) {
    		if (matrix[row][j] != 0) {
    			matrix[row][j] = -1;
    		}
    	}
    
    	for (int i = 0; i < rows; i++) {
    		if (matrix[i][col] != 0) {
    			matrix[i][col] = -1;
    		}
    	}
    }
    
    private static void changeBinaryMatrix(int[][] matrix) {
        int rows = matrix.length;  
        int cols = matrix[0].length;
        
    	if (rows == 0 || cols == 0) {
    		return;
    	}
    
    	for (int i = 0; i < rows; i++) {
    		for (int j = 0; j < cols; j++) {
    			if (matrix[i][j] == 0) {
    				changeRowColumn(matrix, i, j);
    			}
    		}
    	}
    	
    	for (int i = 0; i < rows; i++) {
    		for (int j = 0; j < cols; j++) {
    			if (matrix[i][j] == -1) {
    				matrix[i][j] = 0;
    			}
    		}
    	}
    }
    
    private static void printMatrix(int[][] matrix) {
    	int rows = matrix.length;  
        int cols = matrix[0].length;

    	for (int i = 0; i < rows; i++) {
    		for (int j = 0; j < cols; j++) {
    			System.out.print(matrix[i][j] + " ");
    		}
    		System.out.print("\n");
    	}
    }
    public static void main(String[] args) {
        int[][] matrix =
    	{
    		{1, 1, 0, 1, 1, 1},
    		{1, 1, 1, 1, 1, 1},
    		{1, 1, 0, 1, 1, 1},
    		{1, 1, 1, 1, 1, 1},
    		{1, 0, 1, 1, 1, 1}
    	};

	    changeBinaryMatrix(matrix);

	    printMatrix(matrix);
    }
}




/*
run:

0 0 0 0 0 0 
1 0 0 1 1 1 
0 0 0 0 0 0 
1 0 0 1 1 1 
0 0 0 0 0 0 

*/


 



answered Jan 21, 2024 by avibootz
...