清除行列
2016-04-27 15:03
183 查看
题目描述
请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。
给定一个MxN的int[][]矩阵(C++中为vector>)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]]
思路:遍历二维数组,记录值为0的行号、列好,,然后根据行号、列号,逐位清零
请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。
给定一个MxN的int[][]矩阵(C++中为vector>)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]]
思路:遍历二维数组,记录值为0的行号、列好,,然后根据行号、列号,逐位清零
C/C++实现
用到动态数组声明并初始化,,class Clearer { public: vector<vector<int> > clearZero(vector<vector<int> > mat, int n) { // write code here //bool row ; //bool colum ; if(mat.empty()) return vector<vector<int> >(); int len1=mat.size(); int len2=mat[0].size(); bool *row=new bool[len1]();//切记声明后一定要加小括号初始化,否则报错!! bool *colum =new bool[len2](); for (int i=0;i<len1;i++) for(int j=0; j<len2;j++){ if(mat[i][j]==0) { row[i]=true; colum[j]=true; } } for (int i=0;i<len1;i++) for(int j=0; j<len2;j++){ if(row[i] || colum[j] ){ mat[i][j]=0; } } delete [] row; delete [] colum ; return mat; } };
Java实现
Java实现相对较为简单import java.util.*; public class Clearer { public int[][] clearZero(int[][] matrix, int n) { // write code here boolean[] row = new boolean ; boolean[] column = new boolean ; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if (matrix[i][j] == 0) { row[i] = true; column[j] = true; } } } for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if(row[i] || column[j]) { matrix[i][j] = 0; } } } return matrix ; } }
相关文章推荐
- web day18 事务,数据库连接池(DBCP,C3P0,),DBUtils,装饰模式,Tomcat配置JNDI资源,ThreadLocal,BaseServlet
- 或许我们做错了,但绝非一无是处
- 网站压力测试工具 Webbench
- [LeetCode]Candy——分糖果问题
- Python读写文件的方式
- 服务器登录,数据传输方法
- ORACLE 查询日志
- 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。
- BZOJ 4546|CodeChef XRQRS|Xor Queries|可持久化Trie
- Android开发技术学习之下拉刷新功能的实现
- hdu 1392(求凸包周长)
- ERROR: insufficient memory reserved for statement tuplesort_mk.h:115
- 阅读根文件系统论文笔记
- 提取视频中的前景物体
- Js操作Select大全(取值、设置选中等等)
- 移动App Crash的测试用例设计
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
- Material Design学习-----FloatingActionButton
- js反选
- 网站压力测试工具 Webbench