博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
code第一部分数组:第十九题 矩阵元素为0,横列置零
阅读量:6970 次
发布时间:2019-06-27

本文共 1034 字,大约阅读时间需要 3 分钟。

code第一部分数组:第十九题 矩阵元素为0,横列置零

 

 

分析
O(m + n) 空间的方法很简单,设置两个数组,记录每行和每列是否存在 0。
 
void zero(int **a, int m, int n){    bool row[m], col[n];       memset(row, false, sizeof(row));    memset(col, false, sizeof(col));       for(int i=0; i
> &matrix){ const size_t m = matrix.size(); const size_t n = matrix[0].size(); bool row_has_zero = false; // 第一行是否存在 0 bool col_has_zero = false; // 第一列是否存在 0 for (size_t i = 0; i < n; i++) if (matrix[0][i] == 0) { row_has_zero = true; break; } for (size_t i = 0; i < m; i++) { if (matrix[i][0] == 0) { col_has_zero = true; break; } for (size_t i = 1; i < m; i++) { for (size_t j = 1; j < n; j++) { if (matrix[i][j] == 0) { matrix[0][j] = 0; matrix[i][0] = 0; } } } for (size_t i = 1; i < m; i++) { for (size_t j = 1; j < n; j++) { if (matrix[i][0] == 0 || matrix[0][j] == 0) { matrix[i][j] = 0; } } } if (row_has_zero) { for (size_t i = 0; i < n; i++) { matrix[0][i] = 0; } } if (col_has_zero) { for (size_t i = 0; i < m; i++) { matrix[i][0] = 0; } }}

 

转载于:https://www.cnblogs.com/tao-alex/p/6443054.html

你可能感兴趣的文章
BZOJ 5369: [Pkusc2018]最大前缀和
查看>>
[hdu6107] Typesetting
查看>>
IOS网络请求类(NSURLCollection)
查看>>
暑假第二周进度总结(2018.7.16-2018.7.22)
查看>>
软件工程第三次作业-每周例行报告
查看>>
ASP.NET Core 中文文档 第四章 MVC(2.3)格式化响应数据
查看>>
JavaScript 总结几个提高性能知识点
查看>>
Xcode文件头信息设置
查看>>
C语言 整数的逆序
查看>>
AC日记——潜伏着 openjudge 1.7 11
查看>>
AC日记——过滤多余的空格 1.7 23
查看>>
AC日记——[SCOI2008] 着色方案 bzoj 1079
查看>>
ssh快速登录远程服务器
查看>>
MAC MAMP install yaf
查看>>
浅谈spring为什么推荐使用构造器注入
查看>>
实用工具箱app开发日记5
查看>>
Python基础—编码(Day2)
查看>>
Qt Linguist的使用
查看>>
《高性能javascript》读书笔记:第三章 DOM编程
查看>>
SQL随笔_2
查看>>