LeetCode | 73. Set Matrix Zeroes
来源:互联网 发布:易观数据怎么样 编辑:程序博客网 时间:2024/06/17 00:24
题目:
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
题意:
言简意赅,即目标是在输入矩阵中,某元素(i, j)为0时,将其所在行i和列j上的元素全部变为0;要求在原矩阵上进行变换,所以需要先判断每行每列的0情况,存储在vector idxI和idxJ里,之后再次遍历矩阵,若其坐标中(i, j)所对应的行列有出现过0元素,则替换为0。
代码:
void setZeroes(vector<vector<int>>& matrix) { int r = matrix.size(); if(r < 1) return; int c = matrix[0].size(); if(c < 1) return; vector<int> idxI(r, 1), idxJ(c, 1); for(int i = 0; i<r; i++) { for(int j = 0; j<c; j++) { if(!matrix[i][j]) { idxI[i] = 0; idxJ[j] = 0; } } } for(int i = 0; i<r; i++) { for(int j = 0; j<c; j++) { if(!idxI[i] || !idxJ[j]) { matrix[i][j] = 0; } } } return; }
效率貌似不太高,参考了讨论区的解法,思路基本差不多>.<,下面贴一个讨论区的代码:
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]73.Set Matrix Zeroes
- LeetCode --- 73. Set Matrix Zeroes
- [Leetcode] 73. Set Matrix Zeroes
- [leetcode] 73.Set Matrix Zeroes
- 【leetcode】73. Set Matrix Zeroes
- [leetcode] 73. Set Matrix Zeroes
- Leetcode 73. Set Matrix Zeroes
- LeetCode 73. Set Matrix Zeroes
- LeetCode 73. Set Matrix Zeroes
- 73. Set Matrix Zeroes LeetCode
- [LeetCode]73. Set Matrix Zeroes
- [LeetCode]73. Set Matrix Zeroes
- leetcode 73. Set Matrix Zeroes
- LeetCode 73. Set Matrix Zeroes
- LeetCode *** 73. Set Matrix Zeroes
- leetcode 73. Set Matrix Zeroes
- [LeetCode]73. Set Matrix Zeroes
- LeetCode-73. Set Matrix Zeroes
- 欢迎使用CSDN-markdown编辑器
- 设计Mysql索引的原则
- 网易2018校招 相反数
- hadoop集群搭建
- 剑指编程(13)
- LeetCode | 73. Set Matrix Zeroes
- Alertdilog自定义样式
- canvas实现实时钟表代码实例(面向对象编程)
- Dijkstra——最小堆优化
- 网易2018校招 字符串碎片
- 使用hibernate进行update和save的时候不成功,控制台也不报错,使用sql语句就能成功
- 电流的磁效应与电动机(马达/motor)实验
- SICP阅读理解<第一章第一节>
- 世界主要国家经纬度