当前位置:   article > 正文

Leetcode-矩阵置零_leetcode矩阵置零

leetcode矩阵置零

67.矩阵置零

题目内容:

 

代码及思路:

1)判断第0行和第0列是否存在0元素;

2)判断除第0行和第0列之外各矩阵位置处是否存在0,若存在,找到对应第0行及第0列位置置0;

3)若第0行第0列位置有0元素,将整行或者整列置0;

  1. class Solution {
  2. public:
  3. void setZeroes(vector<vector<int>>& matrix) {
  4. int row=matrix.size();
  5. int col=matrix[0].size();
  6. bool row0=false,col0=false;
  7. //判断第0行和第0列是否有0元素
  8. for(int i=0;i<row;i++)
  9. {
  10. if(matrix[i][0]==0)
  11. col0=true;
  12. }
  13. for(int j=0;j<col;j++)
  14. {
  15. if(matrix[0][j]==0)
  16. row0=true;
  17. }
  18. //判断剩下矩阵位置是否有0元素
  19. for(int i=1;i<row;i++)
  20. {
  21. for(int j=1;j<col;j++)
  22. {
  23. if(matrix[i][j]==0)//对应第0行和第0列位置置0
  24. {
  25. matrix[i][0]=0;
  26. matrix[0][j]=0;
  27. }
  28. }
  29. }
  30. for(int i=1;i<row;i++)
  31. {
  32. for(int j=1;j<col;j++)
  33. {
  34. if(matrix[i][0]==0||matrix[0][j]==0) //若第0行或者第0列对应位置为0,则将其对应位置置零
  35. {
  36. matrix[i][j]=0;
  37. }
  38. }
  39. }
  40. if(col0) //第0行或者第0列只要有0,整行整列置0
  41. {
  42. for(int i=0;i<row;i++)
  43. matrix[i][0]=0;
  44. }
  45. if(row0)
  46. {
  47. for(int j=0;j<col;j++)
  48. matrix[0][j]=0;
  49. }
  50. }
  51. };

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/257024
推荐阅读
相关标签
  

闽ICP备14008679号