leetcode矩阵置零

题目:

. - 力扣(LeetCode)

代码:

cpp 复制代码
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        bool row1 = false;
        bool column1 = false;
        int m = matrix.size();
        int n = matrix[0].size();
        //记录第一行有没有0
        for(int i = 0;i < n;i++){
            if(matrix[0][i] == 0){
                row1 = true;
                break;
            }
        }
        //记录第一列有没有0
        for(int i = 0;i < m;i++){
            if(matrix[i][0] == 0){
                column1 = true;
                break;
            }
        }
        //借用第一行第一列标记0
        for(int i = 1;i < m;i++){
            for(int j = 1;j < n;j++){
                if(matrix[i][j] == 0){
                    matrix[i][0] = matrix[0][j] = 0;
                }
            }
        }
        //正式操作
        for(int i = 1;i < m;i++){
            for(int j = 1;j < n;j++){
                if(matrix[i][0] == 0 || matrix[0][j] == 0){
                    matrix[i][j] = 0;
                }
            }
        }
        //把第一行具体操作
        if(row1){
            for(int i = 0;i < n;i++){
                matrix[0][i] = 0;
            }
        }
        //把第一列具体操作
        if(column1){
            for(int i = 0;i < m;i++){
                matrix[i][0] = 0;
            }
        }
    }
};
相关推荐
牧天白衣.3 分钟前
力扣215.数组中的第K个最大元素
算法·leetcode
cxr82810 分钟前
控制理论基础
人工智能·算法
平平淡淡才是true23 分钟前
偏序关系、哈斯图、最长链长度、最长链条数
算法
小钊(求职中)28 分钟前
算法知识、常用方法总结
java·算法·排序算法·力扣
paeamecium33 分钟前
【PAT甲级真题】- Talent and Virtue (25)
数据结构·c++·算法·pat
Mr_Xuhhh38 分钟前
蓝桥杯复习清单真题(C++版本)
c++·算法·蓝桥杯
tankeven39 分钟前
HJ163 时津风的资源收集
c++·算法
Boop_wu1 小时前
[Java 算法] 动态规划(4)
数据结构·算法·leetcode
旖-旎1 小时前
分治(计算右侧小于当前元素的个数)(7)
c++·学习·算法·leetcode·排序算法·归并排序
cxr8281 小时前
细胞球运动追踪的卡尔曼滤波与力场插值算法 —— 活体内微米级颗粒实时定位与轨迹预测系统
算法