*LeetCode-Set Matrix Zeroes
来源:互联网 发布:in下载软件 编辑:程序博客网 时间:2024/05/14 11:33
可以用两个数组记录每一行 每一列是否有存在0 但是注意在记录的时候不能同时set 这样原来不是0的也要被set成0 最后就全变成0
然后再用一次扫描 假如这一行或者这一列有是0的 就把这一位set
public class Solution { public void setZeroes(int[][] matrix) { int col = matrix[0].length; int row = matrix.length; int [] rowArr = new int [ row ]; int [] colArr = new int [ col ]; for ( int i = 0; i < row; i ++ ){ for ( int j = 0; j < col; j ++ ){ if ( matrix[i][j] == 0 ){ rowArr[i] = 1; colArr[j] = 1; } } } for ( int i = 0; i < row; i ++ ){ for ( int j = 0; j < col; j ++ ){ if ( rowArr[i] == 1 || colArr[j] == 1) matrix[i][j] = 0; } } }}
还有一种省空间的方法 就是把那两个记录数组记录在每一行每一列的第一个数字那里
注意 首先左上角的那个既代表第一行又代表第一列 所以需要多用一个数字单独记录
并且最后set的过程要从后面来 否则第一行第一列就会被破坏了
void setZeroes(vector<vector<int> > &matrix) { int col0 = 1, rows = matrix.size(), cols = matrix[0].size(); for (int i = 0; i < rows; i++) { if (matrix[i][0] == 0) col0 = 0; for (int j = 1; j < cols; j++) if (matrix[i][j] == 0) matrix[i][0] = matrix[0][j] = 0; } for (int i = rows - 1; i >= 0; i--) { for (int j = cols - 1; j >= 1; j--) if (matrix[i][0] == 0 || matrix[0][j] == 0) matrix[i][j] = 0; if (col0 == 0) matrix[i][0] = 0; }}
0 0
- LeetCode: Set Matrix Zeroes
- LeetCode Set Matrix Zeroes
- [Leetcode] Set Matrix Zeroes
- LeetCode: Set Matrix Zeroes
- Leetcode: Set Matrix Zeroes
- [LeetCode] Set Matrix Zeroes
- [LeetCode]Set Matrix Zeroes
- [leetcode]Set Matrix Zeroes
- Leetcode:Set Matrix Zeroes
- LeetCode-Set Matrix Zeroes
- [leetcode] Set Matrix Zeroes
- LeetCode - Set Matrix Zeroes
- Set Matrix Zeroes leetcode
- 【Leetcode】Set Matrix Zeroes
- 【leetcode】Set Matrix Zeroes
- Leetcode: Set Matrix Zeroes
- Leetcode Set Matrix Zeroes
- LeetCode | Set Matrix Zeroes
- Ember.js 入门指南——{{action}} 助手
- LeetCode Implement strStr()
- course shedule(略)
- win7 64位如何调出debug
- 【日志15/09/19】功利心
- *LeetCode-Set Matrix Zeroes
- poj 1784 Huffman's Greed 动态规划四边形加速求最优二叉搜索树
- cqcetdmyqfutzj
- C++类成员的访问控制
- &和&&的区别
- 程序员常用不常见很难得的地址大全
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- 数据结构实践——数制转换(栈)
- MTK手机平台驱动“含金量分析”