【发布时间】:2021-08-07 19:20:19
【问题描述】:
我正在尝试以螺旋形式打印逆时钟方向的元素。
但我发现格式中缺少一个元素。
例如:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
从 4 开始, 而不是实际输出:4 3 2 1 5 9 13 14 15 16 12 8 7 6 10 11
我得到:4 3 2 1 5 9 13 14 15 16 8 7 6 10 11
另外,如果你有,谁能给我一个优化的解决方案
这是我的代码:
public class Sprial_Matrix {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int m=4;
int n=4;
System.out.println("Elements: ");
int arr[][] = new int[m][n];
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
arr[i][j]=s.nextInt();
}
}
int k=0,l=0;
while(k<m && l<n) {
for(int i=n-1;i>=l;i--) {
System.out.print(arr[k][i]+" ");
}
k++;
for(int i=k;i<m;i++ ) {
System.out.print(arr[i][l]+" ");
}
l++;
if(k<m) {
for(int i=l;i<=m-1;i++)
System.out.print(arr[m-1][i]+" ");
}
m--;
}
if(l<n) {
for(int i=m-1;i>=l;i--) {
System.out.print(arr[i][n-1]+" ");
}
n--;
}
s.close();
}
}
感谢您提供的反馈并感谢,,,
【问题讨论】:
-
我不清楚输入的期望输出是什么。确保显示每一行。
-
想要的输出如下:index 03,02,01,00, 10,20,30, 31,32,33, 23,13, 12,11, 21,22 ... . 我希望你明白这一点:)
-
我认为这些是成对的索引。您的输出看起来不像逆时针螺旋。对我来说应该是
4 3 2 1 5 14 13 12 6 15 16 11 7 8 9 10
标签: java matrix data-structures spiral