leetcodehot100 矩阵置零

额外使用一个boolean变量用来判断第一列是否为零。另外第一行除了第一个用来标记当前的列是否为零,第一列用来标记当前行是否标记为零

class Solution {

public void setZeroes(int[][] matrix) {

boolean isAllZero = false;//判断第一列是否存在零

for(int i = 0;i<matrix.length;i++){//将记录所有应该置零的地方

for(int j = 0;j<matrix[0].length;j++){

if(matrix[i][j]==0){

if(j==0){

isAllZero = true;

}else{

matrix[i][0] = 0;

matrix[0][j] = 0;

}

}

}

}

for(int i = 1;i<matrix.length;i++){

for(int j = 1;j<matrix[0].length;j++){

if(matrix[i][0]==0||matrix[0][j]==0){

matrix[i][j] = 0;

}

}

}

for(int i = 0;i<matrix[0].length;i++){

if(matrix[0][0]==0){

matrix[0][i] =0;

}

}

if(isAllZero){

for(int i = 0;i<matrix.length;i++){

matrix[i][0] =0;

}

}

}

}

相关推荐
CoderYanger1 分钟前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
CodeByV10 分钟前
【算法题】双指针(二)
数据结构·算法
点云SLAM1 小时前
Boost库中Math 模块的根搜索 / 根求解和示例
数学·算法·数值优化·根搜索 / 根求解和示例·函数根求解·boost模块
我搞slam1 小时前
EM Planner算法与代码解读
算法
CodeWizard~2 小时前
线性筛法求解欧拉函数以及欧拉反演
算法
45288655上山打老虎2 小时前
右值引用和移动语义
算法
liulilittle2 小时前
C++ 并发双阶段队列设计原理与实现
linux·开发语言·c++·windows·算法·线程·并发
白狐_7982 小时前
【项目实战】我用一个 HTML 文件写了一个“CET-6 单词斩”
前端·算法·html
Jasmine_llq2 小时前
《P3811 【模板】模意义下的乘法逆元》
数据结构·算法·线性求逆元算法·递推求模逆元