CC07:清除行列
2024-09-05 21:40:28
题目
请编写一个算法,若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;
}
};
最新文章
- EF架构~Cannot attach the file as database
- IBatis学习
- LightOJ 1030 Discovering Gold(期望 概率)
- PHP面向对象学习一
- 暑假热身 B. 下载测速
- float:left居中对齐
- j疑难杂症:ava.lang.NoSuchMethodError: com.opensymphony.xwork2.util.finder.ClassFinder.<;init>;
- CLR的组成和运转
- iOS开发 改变UINavigationController的UINavigationBar的高度和背景图片
- Visual Studio Code for mac
- jsp传到java的control层的方法
- Retrofit原理
- SQLite占用资源少原因
- oracle 压力测试工具benchmarksql
- 最短路算法模板--SPFA
- 用SVN进行团队开发协作生命周期详解
- SSM数据库数据导出excel
- HTML框架标签的使用-&;lt;frameset&;gt;
- Robots.txt 不让搜索引擎收录网站的方法
- javascript小记-闭包理解
热门文章
- PYTHON 爬虫笔记十一:Scrapy框架的基本使用
- [干货]兼容HTML5的Placeholder属性-更新版v0.10102013
- 查 101.201.62.30 IP信誉方法
- codeforces 659E E. New Reform(图论)
- java-05 面向对象
- Linux中vsftpd安装和配置
- [转]JavaScript的实例化与继承:请停止使用new关键字
- POCO库中文编程参考指南(8)丰富的Socket编程
- Java关键字以及一些基础解释
- codec can&#39;t decode byte 0xe6 in position 0: ordinal not in range