程序员面试金典——1.7清除行列
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清除行列相关推荐
- 清除行列 牛客网 程序员面试金典 C++ Python
清除行列 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零. 给定一个N阶方阵int[]mat和矩阵的阶数n,请返回完成操作后的 ...
- 程序员面试金典--第k个数
程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...
- 程序员面试金典 - 面试题 08.13. 堆箱子(DP)
1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...
- 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...
- 《程序员面试金典》解题目录(更新完毕)
题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...
- C#LeetCode刷题-程序员面试金典
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...
- 《程序员面试金典》+《算法导论》
<程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...
- 程序员面试金典——18.13 最大字母矩阵
程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...
- 程序员面试金典——18.12最大和子矩阵
程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...
最新文章
- JSOUP 打开url的方式
- leetcode算法题--不同的二叉搜索树 II
- java 右键菜单_界面操作--添加右键菜单
- go和python计算字节数组sha1
- ​KDD 2020 开源论文 | 图神经网络多变量时序预测
- SPI接口通信协议详解:SPI时序、2线、3线、4线SPI及4种常用工作模式
- Tile:一个崭新出炉的机器学习语言
- CentOS 安装jdk1.7 32位
- 如何用70行Java代码实现神经网络算法
- protobuf-3.0 win环境编译
- Mac使用VMware、Ubuntu安装配置虚拟机Linux
- 服务器上Dll文件读取失败,解决开机出现dll文件加载失败的方法
- unity自带录屏UnityRecorder
- Oracle + PlSql 下载安装配置
- java在线测试工具_9个最好用的在线编译/调试工具
- Hibernate中类的继承联合使用subclass和join
- 泊松分布(一种离散分布)
- 程序猿必备福利之二上篇!!!简易使用Nodejs实现从美图网爬取清晰脱俗的美图???
- SFC游戏<战区88>,买100W战斗机的测试
- Java编程:Java里的协程
热门文章
- Lambda表达式实例
- groupby多个字段性能_SQL 性能优化
- java final域_【Java】final 域的内存语义
- java 对象equals_浅谈Java对象的equals方法
- python立即关机_“python怎么控制计算机关机“python自动关机教程
- 软件工程师证书有用吗_考证:BIM工程师证书有用吗?
- 如何在CentOS 7上安装Varnish Cache
- android 导航抽屉_Android导航抽屉示例教程
- Android Google Map –两点之间的绘图路线
- 人工智能时代职教教师能力提升的路径