gpt4 book ai didi

java - 以螺旋顺序打印二维数组——进入无限循环

转载 作者:行者123 更新时间:2023-12-01 18:04:26 25 4
gpt4 key购买 nike

我正在尝试按螺旋顺序实现打印二维数组。我不知道为什么,但我的代码进入无限 for 循环并重复打印 1,2,3,4。

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]);

}
}
}
}

最佳答案

您的代码的行为与您在此处提到的不同。尝试:

 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]);
}
l++;

}

关于java - 以螺旋顺序打印二维数组——进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37848900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com