首页 > 代码库 > Set Matrix Zeroes leetcode java
Set Matrix Zeroes leetcode java
题目:
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
click to show follow up.
Follow up:
Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?
题解:
这道题是CC150 1.7上面的原题。可以看上面详尽的解释,我就不写了。
代码如下:
1 public void setZeroes(int[][] matrix) {
2 int m = matrix.length;
3 int n = matrix[0].length;
4
5 if(m==0||n==0)
6 return;
7 int[] flagr = new int[m];
8 int[] flagc = new int[n];
9
10 for(int i=0;i<m;i++){
11 for(int j=0;j<n;j++){
12 if(matrix[i][j]==0){
13 flagr[i]= 1;
14 flagc[j]= 1;
15 }
16 }
17 }
18
19 for(int i=0;i<m;i++){
20 for(int j=0;j<n;j++){
21 if(flagr[i]==1||flagc[j]==1){
22 matrix[i][j]=0;
23 }
24 }
25 }
26 }
2 int m = matrix.length;
3 int n = matrix[0].length;
4
5 if(m==0||n==0)
6 return;
7 int[] flagr = new int[m];
8 int[] flagc = new int[n];
9
10 for(int i=0;i<m;i++){
11 for(int j=0;j<n;j++){
12 if(matrix[i][j]==0){
13 flagr[i]= 1;
14 flagc[j]= 1;
15 }
16 }
17 }
18
19 for(int i=0;i<m;i++){
20 for(int j=0;j<n;j++){
21 if(flagr[i]==1||flagc[j]==1){
22 matrix[i][j]=0;
23 }
24 }
25 }
26 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。