当前位置: 代码迷 >> 综合 >> leetcode73
  详细解决方案

leetcode73

热度:68   发布时间:2024-01-24 13:41:52.0

这道题的意思是把第一行和第一列作为标志位,用来记录此行或此列有没有出现过0.

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int row = 0,col = 0;for(int i = 0;i<matrix.size();i++){if(matrix[i][0] == 0) {row = 1;break;}}for(int i = 0;i<matrix[0].size();i++){if(matrix[0][i] == 0){col = 1;break;}}for(int i = 1;i<matrix.size();i++){for(int j = 1;j<matrix[i].size();j++){if(matrix[i][j] == 0){matrix[i][0] = 0;matrix[0][j] = 0;}}}for(int i = 0;i<matrix.size();i++){for(int j = 0;j<matrix[i].size();j++){cout<<matrix[i][j]<<" ";}cout<<endl;}for(int i = 1;i<matrix.size();i++){for(int j = 1;j<matrix[i].size();j++){if(matrix[i][0] == 0 || matrix[0][j] == 0){matrix[i][j] = 0;}}}if(row){for(int i = 0;i<matrix.size();i++) matrix[i][0] = 0; }if(col){for(int j = 0;j<matrix[0].size();j++) matrix[0][j] = 0;}}
};