Solution1:我的答案

空间复杂度比较高,垃圾算法

class Clearer {
public:vector<vector<int> > clearZero(vector<vector<int> > mat, int n) {// write code herevector<vector<int> > mat_copy = mat;if(n == 0) return mat_copy;set<int> row_zero, col_zero;for(int i = 0; i < mat.size(); i++) {for(int j = 0; j < mat[i].size(); j++) {if(mat[i][j] == 0) {if(row_zero.find(i) == row_zero.end()) {clearRow(mat_copy, i);row_zero.insert(i);}if(col_zero.find(j) == col_zero.end()) {clearCol(mat_copy, j);col_zero.insert(j);}}}}return mat_copy;}void clearRow(vector<vector<int> > &mat, int r) {for(int j = 0; j < mat[r].size(); j++) {mat[r][j] = 0;}return;}void clearCol(vector<vector<int> > &mat, int c) {for(int i = 0; i < mat.size(); i++) {mat[i][c] = 0;}return;}
};

Solution2:

记录下所有含0的行列值,再遍历。代码比较简练,学习之!

class Clearer {
public:vector<vector<int> > clearZero(vector<vector<int> > mat, int n) {// write code herevector<bool> row(n, false);vector<bool> column(n, false);for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){if(mat[i][j] == 0){row[i] = true;column[j] = true;}}}for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){if(row[i] || column[j]){mat[i][j] = 0;}}}return mat;}
};

程序员面试金典——1.7清除行列相关推荐

  1. 清除行列 牛客网 程序员面试金典 C++ Python

    清除行列 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零. 给定一个N阶方阵int[]mat和矩阵的阶数n,请返回完成操作后的 ...

  2. 程序员面试金典--第k个数

    程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...

  3. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  4. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  5. 《程序员面试金典》解题目录(更新完毕)

    题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...

  6. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  7. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

  8. 程序员面试金典——18.13 最大字母矩阵

    程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...

  9. 程序员面试金典——18.12最大和子矩阵

    程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...

最新文章

  1. JSOUP 打开url的方式
  2. leetcode算法题--不同的二叉搜索树 II
  3. java 右键菜单_界面操作--添加右键菜单
  4. go和python计算字节数组sha1
  5. ​KDD 2020 开源论文 | 图神经网络多变量时序预测
  6. SPI接口通信协议详解:SPI时序、2线、3线、4线SPI及4种常用工作模式
  7. Tile:一个崭新出炉的机器学习语言
  8. CentOS 安装jdk1.7 32位
  9. 如何用70行Java代码实现神经网络算法
  10. protobuf-3.0 win环境编译
  11. Mac使用VMware、Ubuntu安装配置虚拟机Linux
  12. 服务器上Dll文件读取失败,解决开机出现dll文件加载失败的方法
  13. unity自带录屏UnityRecorder
  14. Oracle + PlSql 下载安装配置
  15. java在线测试工具_9个最好用的在线编译/调试工具
  16. Hibernate中类的继承联合使用subclass和join
  17. 泊松分布(一种离散分布)
  18. 程序猿必备福利之二上篇!!!简易使用Nodejs实现从美图网爬取清晰脱俗的美图???
  19. SFC游戏<战区88>,买100W战斗机的测试
  20. Java编程:Java里的协程

热门文章

  1. Lambda表达式实例
  2. groupby多个字段性能_SQL 性能优化
  3. java final域_【Java】final 域的内存语义
  4. java 对象equals_浅谈Java对象的equals方法
  5. python立即关机_“python怎么控制计算机关机“python自动关机教程
  6. 软件工程师证书有用吗_考证:BIM工程师证书有用吗?
  7. 如何在CentOS 7上安装Varnish Cache
  8. android 导航抽屉_Android导航抽屉示例教程
  9. Android Google Map –两点之间的绘图路线
  10. 人工智能时代职教教师能力提升的路径