Advertisement
Guest User

Untitled

a guest
Dec 21st, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. /* CC150 1.7 set Matrix Zero 20141221
  2. * blindchaser
  3. * Time Complexity:感觉复杂成马了...
  4. * Space Complexity: idk
  5. *
  6. * Problem: 当矩阵元素为多位数时,输出的对齐问题,有没有简单有效的办法
  7. */
  8.  
  9. import java.util.Arrays;
  10. import java.util.Random;
  11.  
  12. public class setMatrixZero {
  13.  
  14. public static Matrix setZero(Matrix mtr) {
  15. boolean mMark[] = new boolean[mtr.getM()];
  16. boolean nMark[] = new boolean[mtr.getN()];
  17.  
  18. Arrays.fill(mMark, false);
  19. Arrays.fill(nMark, false);
  20.  
  21. for (int m = 0; m < mtr.getM(); m++)
  22. for (int n = 0; n < mtr.getN(); n++)
  23. if (mtr.intMatrix[m][n] == 0) {
  24. mMark[m] = true;
  25. nMark[n] = true;
  26. }
  27.  
  28. for (int m = 0; m < mMark.length; m++)
  29. if (mMark[m] == true)
  30. for (int n = 0; n < nMark.length; n++)
  31. mtr.intMatrix[m][n] = 0;
  32.  
  33. for (int n = 0; n < nMark.length; n++)
  34. if (nMark[n] == true)
  35. for (int m = 0; m < mMark.length; m++)
  36. mtr.intMatrix[m][n] = 0;
  37.  
  38. return mtr;
  39.  
  40. }
  41.  
  42. public static Matrix createMatrix(int M, int N) {
  43.  
  44. Matrix mtr = new Matrix(M, N);
  45.  
  46. for (int m = 0; m < M; m++)
  47. for (int n = 0; n < N; n++) {
  48. Random r = new Random();
  49. mtr.intMatrix[m][n] = r.nextInt(10);
  50. }
  51.  
  52. return mtr;
  53. }
  54.  
  55. public static void printMatrix(Matrix mtr) {
  56.  
  57. for (int m = 0; m < mtr.getM(); m++)
  58. for (int n = 0; n < mtr.getN(); n++)
  59. if (n == mtr.getN() - 1)
  60. System.out.println(" " + mtr.intMatrix[m][n]);
  61. else
  62. System.out.print(" " + mtr.intMatrix[m][n]);
  63.  
  64. }
  65.  
  66. public static void main(String[] args) {
  67. Matrix originalMTR = createMatrix(3, 4);
  68. System.out.println("Original Matrix :");
  69. printMatrix(originalMTR);
  70. Matrix setMTR = setZero(originalMTR);
  71. System.out.println("Set Matrix :");
  72. printMatrix(setMTR);
  73. }
  74.  
  75. private static class Matrix {
  76. private int M;
  77. private int N;
  78. int[][] intMatrix;
  79.  
  80. public Matrix(int M, int N) {
  81. this.M = M;
  82. this.N = N;
  83. intMatrix = new int[M][N];
  84. }
  85.  
  86. public void setM(int m) {
  87. M = m;
  88. }
  89.  
  90. public void setN(int m) {
  91. M = m;
  92. }
  93.  
  94. public int getM() {
  95. return M;
  96. }
  97.  
  98. public int getN() {
  99. return N;
  100. }
  101.  
  102. }
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement