LeetCode
来源:互联网 发布:手机淘宝体检中心截图 编辑:程序博客网 时间:2024/06/09 13:59
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
我的做法是开两个vector存一下每一行或者每一列的状态,空间复杂度是O(n)。评论区的做法是直接把状态存在第一行和第一列,然后扫描的时候判断行和列的开头就可以知道是否这个值需要变为0,空间复杂度O(1)。想起原来跟男票讨论过这种题目,不开空间的变换一个数组,我果然是不长记性【叹气】
不过写的时候犯了一个错误,我把每行每列的开头置为0,遍历后只判断行和列的开头,就发生了新的问题。
1 2 3
0 4 5
这种情况下我会得到[[0, 0, 0], [0, 0, 0]],因为[0][0]的位置被置为0了,所以需要设置一个flag值,第一列单独算。
class Solution {public: void setZeroes(vector<vector<int>>& matrix) { int n = matrix.size(); int m = matrix[0].size(); bool flag = false; for (int i = 0; i < n; ++i) { if (!matrix[i][0]) flag = true; for (int j = 1; j < m; ++j) { if (matrix[i][j] == 0) { matrix[0][j] = 0; matrix[i][0] = 0; } } } for (int i = n - 1; i >= 0; --i) { for (int j = m - 1; j >= 1; --j) { if (!matrix[i][0] || !matrix[0][j]) matrix[i][j] = 0; } if (flag) matrix[i][0] = 0; } return; }};总会以为已经会了,其实还什么都不会。保持敬畏。
阅读全文
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- c# 导入excel处理数据,导出excel报表
- C语言函数书写
- hdu2647 Reward【拓扑排序】
- 用ngrok实现外网访问本地WEB项目的方法
- HTML5 2017.07.21
- LeetCode
- RESTful架构简介
- 为什么Integer a=100,b=100时候a==b返回true,而Integer c=1000,d=1000时候c==d返回fa
- jQuery回溯处理的设计
- greenplum gp 常用命令
- 谈谈互联网后端基础设施
- solr 使用场景
- github常见操作和常见错误!错误提示:fatal: remote origin already exists.
- Oracle/MySql/SqlServer