我试图按sprial顺序实现打印2 d数组。我不知道为什么,但我的代码重复进入无限循环打印1,2,3,4。在sprial顺序输入无限循环中打印二维数组
StringsubString.java
package com.String;
public class StringSubString {
public static void main(String arg[]) {
int[][] values = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
printInSprialOrder(values, 4, 4);
}
private static void printInSprialOrder(int A[][], int m, int n) {
int t = 0, b = m - 1, l = 0, r = n - 1;
while (t <= b && l <= r) {
for (int i = l; i <= r; i++) {
System.out.println(A[t][i]);
t++;
}
for (int i = t; i <= b; i++) {
System.out.println(A[i][r]);
r--;
}
for (int i = r; i >= l; i++) {
System.out.println(A[b][i]);
b--;
}
for (int i = b; i >= t; i--) {
System.out.println(A[i][l]);
}
}
}
}
https://www.youtube.com/watch?v=siKFOI8PNKM – Leo
如果您的代码重复打印1,2,3,4,则您已发布与代码不同的内容。当我运行它时,它的行为完全不同。 – ajb
有了这段代码,我得到了“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException:”4,所以请在您的最后检查一次,也许您可以调试它,然后您会自行找到问题。虽然它是一个非常普遍的问题,但你可以在谷歌上搜索并且可以有很多方法和解决方案。 – pbajpai21