题目

请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。

给定一个N阶方阵int[]mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector>),保证n小于等于300,矩阵中的元素为int范围内。

测试样例:

[[1,2,3],[0,1,2],[0,0,1]]
返回:[[0,0,3],[0,0,0],[0,0,0]]

解法

这道题可以额外设置两个标志数组row与col,分别表示行与列,当出现0的时候就可以将相应的行与列row与col标志为1;最后重新遍历一次,如果行或者列的数组的标志为1,则将mat[row][col]置为0.

class Clearer {
public:
vector<vector<int> > clearZero(vector<vector<int> > mat, int n) {
// write code here
int c=mat.size();
int m=mat[0].size();
if(c<=0)
return mat;
bool *row=new bool[c]{false};
bool *col=new bool[m]{false}; for(int i=0;i<c;i++)
{
for(int j=0;j<m;j++)
{
if(mat[i][j]==0)
{
row[i]=true;
col[j]=true;
}
}
} for(int i=0;i<c;i++)
{
for(int j=0;j<m;j++)
{
if(row[i] || col[j])
mat[i][j]=0;
}
}
delete []row;
delete []col;
return mat;
}
};

最新文章

  1. EF架构~Cannot attach the file as database
  2. IBatis学习
  3. LightOJ 1030 Discovering Gold(期望 概率)
  4. PHP面向对象学习一
  5. 暑假热身 B. 下载测速
  6. float:left居中对齐
  7. j疑难杂症:ava.lang.NoSuchMethodError: com.opensymphony.xwork2.util.finder.ClassFinder.&lt;init&gt;
  8. CLR的组成和运转
  9. iOS开发 改变UINavigationController的UINavigationBar的高度和背景图片
  10. Visual Studio Code for mac
  11. jsp传到java的control层的方法
  12. Retrofit原理
  13. SQLite占用资源少原因
  14. oracle 压力测试工具benchmarksql
  15. 最短路算法模板--SPFA
  16. 用SVN进行团队开发协作生命周期详解
  17. SSM数据库数据导出excel
  18. HTML框架标签的使用-&amp;lt;frameset&amp;gt;
  19. Robots.txt 不让搜索引擎收录网站的方法
  20. javascript小记-闭包理解

热门文章

  1. PYTHON 爬虫笔记十一:Scrapy框架的基本使用
  2. [干货]兼容HTML5的Placeholder属性-更新版v0.10102013
  3. 查 101.201.62.30 IP信誉方法
  4. codeforces 659E E. New Reform(图论)
  5. java-05 面向对象
  6. Linux中vsftpd安装和配置
  7. [转]JavaScript的实例化与继承:请停止使用new关键字
  8. POCO库中文编程参考指南(8)丰富的Socket编程
  9. Java关键字以及一些基础解释
  10. codec can&#39;t decode byte 0xe6 in position 0: ordinal not in range