73. 矩阵置零

  1. class Solution {
  2. public void setZeroes(int[][] matrix) {
  3. boolean row = false;
  4. boolean col = false;
  5. for (int i = 0; i < matrix.length; i++) {
  6. if (matrix[i][0] == 0) {
  7. row = true;
  8. break;
  9. }
  10. }
  11. for (int i = 0; i < matrix[0].length; i++) {
  12. if (matrix[0][i] == 0) {
  13. col = true;
  14. break;
  15. }
  16. }
  17. for (int i = 1; i < matrix.length; i++) {
  18. for (int j = 1; j < matrix[0].length; j++) {
  19. if (matrix[i][j] == 0) {
  20. matrix[i][0] = 0;
  21. matrix[0][j] = 0;
  22. }
  23. }
  24. }
  25. for (int i = 1; i < matrix.length; i++) {
  26. for (int j = 1; j < matrix[0].length; j++) {
  27. if (matrix[i][0] == 0 || matrix[0][j] == 0) {
  28. matrix[i][j] = 0;
  29. }
  30. }
  31. }
  32. if (row) {
  33. for (int i = 0; i < matrix.length; i++) {
  34. matrix[i][0] = 0;
  35. }
  36. }
  37. if (col) {
  38. for (int i = 0; i < matrix[0].length; i++) {
  39. matrix[0][i] = 0;
  40. }
  41. }
  42. }
  43. }