这是一个螺旋阶数矩阵问题,但是即使条件为真,我的代码也不会停止。
它继续运行,当dir等于0时,它应该满足while循环内的if条件,但似乎它并不在乎if语句。现在我不知道该怎么办。
int A = 4;
int L = 0;
int T = 0;
int B = A;
int R = A;
int h = 0;
int dir = 0;// (d = 0 L to R) (d = 1 R to B) (d = 2 B to L ) (d = 3 L to T)
while (T <=B && L <=R ){
if (dir == 0){
for (int i = L; i < R - 1; i++ ){
h ++;
ans.get(T).add(i);
}
dir ++;
T ++;
}
else if (dir == 1){
for (int i = T ; i < R; i++){
h++;
ans.get(i).add(h);
R--;
dir ++;
}
}
else if (dir == 2){
for (int i = L; i < B; i++){
h++;
ans.get(B-1).add(h);
}
dir++;
B--;
}
else if (dir == 3){
for (int i = T; i <= R; i++){
h++;
ans.get(i).add(h);
}
dir = 0;
L++;
}
}
答案 0 :(得分:-1)
您将dir++
放在了dir==1
的for循环中。如果放置正确,它将正常工作!