public static int[][] zeroMatrix(int[][] mtx){
		int m = mtx.length;
		int n = mtx[0].length;
		int[][] outMtx = mtx;
		boolean[] rowZero = new boolean[m];
		boolean[] colZero = new boolean[n];
		Arrays.fill(rowZero, false);
		Arrays.fill(colZero, false);
		// find the rows and columns that need to be zeroed 
		for (int x=0; x<m; x++){
			for(int y=0; y<n; y++){
				if (mtx[x][y] == 0){
					rowZero[x] = true;
					colZero[y] = true;
				}
			}
		}

		for (int x=0; x<m; x++){
			for(int y=0; y<n; y++){
				if (rowZero[x] || colZero[y]){
					outMtx[x][y] = 0;
				}
			}
		}
		return outMtx;
	}