public static void setZeros(int [][] matrix){
		int nrows = matrix.length;
		int ncolumns = matrix[0].length;
		BitSet rows = new BitSet(nrows);
		BitSet columns = new BitSet(ncolumns);
		
		for(int i = 0; i < nrows; i++){
			for(int j = 0; j < ncolumns; j++){
				if(matrix[i][j] == 0){
					rows.set(i);
					columns.set(j);
				}
			}
		}
		for(int i = 0; i < nrows; i++){
			for(int j = 0; j < ncolumns; j++){
				if(rows.get(i) || columns.get(j)){
					matrix[i][j] = 0;
				}
			}
		}		
	}