Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* CC150 1.7 set Matrix Zero 20141221
- * blindchaser
- * Time Complexity:感觉复杂成马了...
- * Space Complexity: idk
- *
- * Problem: 当矩阵元素为多位数时,输出的对齐问题,有没有简单有效的办法
- */
- import java.util.Arrays;
- import java.util.Random;
- public class setMatrixZero {
- public static Matrix setZero(Matrix mtr) {
- boolean mMark[] = new boolean[mtr.getM()];
- boolean nMark[] = new boolean[mtr.getN()];
- Arrays.fill(mMark, false);
- Arrays.fill(nMark, false);
- for (int m = 0; m < mtr.getM(); m++)
- for (int n = 0; n < mtr.getN(); n++)
- if (mtr.intMatrix[m][n] == 0) {
- mMark[m] = true;
- nMark[n] = true;
- }
- for (int m = 0; m < mMark.length; m++)
- if (mMark[m] == true)
- for (int n = 0; n < nMark.length; n++)
- mtr.intMatrix[m][n] = 0;
- for (int n = 0; n < nMark.length; n++)
- if (nMark[n] == true)
- for (int m = 0; m < mMark.length; m++)
- mtr.intMatrix[m][n] = 0;
- return mtr;
- }
- public static Matrix createMatrix(int M, int N) {
- Matrix mtr = new Matrix(M, N);
- for (int m = 0; m < M; m++)
- for (int n = 0; n < N; n++) {
- Random r = new Random();
- mtr.intMatrix[m][n] = r.nextInt(10);
- }
- return mtr;
- }
- public static void printMatrix(Matrix mtr) {
- for (int m = 0; m < mtr.getM(); m++)
- for (int n = 0; n < mtr.getN(); n++)
- if (n == mtr.getN() - 1)
- System.out.println(" " + mtr.intMatrix[m][n]);
- else
- System.out.print(" " + mtr.intMatrix[m][n]);
- }
- public static void main(String[] args) {
- Matrix originalMTR = createMatrix(3, 4);
- System.out.println("Original Matrix :");
- printMatrix(originalMTR);
- Matrix setMTR = setZero(originalMTR);
- System.out.println("Set Matrix :");
- printMatrix(setMTR);
- }
- private static class Matrix {
- private int M;
- private int N;
- int[][] intMatrix;
- public Matrix(int M, int N) {
- this.M = M;
- this.N = N;
- intMatrix = new int[M][N];
- }
- public void setM(int m) {
- M = m;
- }
- public void setN(int m) {
- M = m;
- }
- public int getM() {
- return M;
- }
- public int getN() {
- return N;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement