很奇怪 明明是4*4的 矩阵,为什么这里j<4就会报错,我觉得就应该是j<4 谢谢
package Question1_7;
public class Question1_7
{
public static void setZeros(int[][] matrix){
int[] row=new int[matrix.length];
int[] column=new int[matrix[0].length];
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[0].length;j++){
if(matrix[i][j]==0){
row[i]=1;
column[j]=1;
}
}
}
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[0].length;j++){
if(row[i]==1||column[j]==1){
matrix[i][j]=0;
}
}
}
}
public static void main(String[] args){
int[][] a={
{1,2,3,4},
{0,3,9,5},
{4,6,8,3},
{4,6,8,3}
};
//setZero(a);
setZeros(a);
for(int i=0;i<4;++i){
int j;
for(j=0;j<3;++j) // 很奇怪 明明是4*4的 矩阵,为什么这里j<4就会报错,我觉得就应该是j<4
System.out.printf(a[i][j]+",");
System.out.println(a[i][j]);
}
}
}
很奇怪 明明是4*4的 矩阵,为什么这里j<4就会报错,我觉得就应该是j<4 谢谢
原题:Write an algorithm such that if an element in an MxN matrix is 0, its entire row and
column are set to 0.
------解决方案--------------------
真晕,说到这种程度你还是不理解?
把main函数里面改成这样你是不是就好理解了。
public static void main(String[] args) {
int[][] a = { { 1, 2, 3, 4 }, { 0, 3, 9, 5 }, { 4, 6, 8, 3 },
{ 4, 6, 8, 3 } };
// setZero(a);
setZeros(a);
for (int i = 0; i < 4; ++i) {
int j;
for (j = 0; j < 4; ++j)
// 很奇怪 明明是4*4的 矩阵,为什么这里j<4就会报错,我觉得就应该是j<4
System.out.printf(a[i][j] + ",");
System.out.println();
}
}