我正在尝试以螺旋方式打印 mxn 大小的矩阵。我尝试通过 Java 处理此代码,如果行 = 列,我能够正确打印螺旋。对于不相等的行和列,我倾向于在打印中重复。因此它会一直正确打印到中心,但随后会重复一个或多个元素。我尝试调试但无法达到。谁能帮我这个?这是我到目前为止得到的代码。
public class SpiralMatrix {
public static void main (String args[]){
int[][] mat = { {1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11,12, 13, 14, 15}};
int i,n=3,m=5,r=m-1,q=n-1;
while(q>0 && r>0){
for(i=m-1-r;i<=r;i++){
System.out.println(mat[m-1-r][i]);
}
for(i=n-1-q+1;i<=q;i++){
System.out.println(mat[i][r]);
}
for(i=r-1;i>=m-1-r;i--){
System.out.println(mat[q][i]);
}
for(i=q-1;i>=n-1-q+1;i--){
System.out.println(mat[i][n-1-q]);
}
q--;
r--;
}
}
}
其输出如下:
1
2
3
4
5
10
15
14
13
12
11
6
7
8
9
8
7
所以在达到中间值9之后,它又回到了8和7。 PS:这不是功课,我正在为面试而复习我的技能。请放轻松,我是终身学习者!谢谢!我会感谢你的帮助。