AcWing 756. 蛇形矩阵-JAVA
原题链接
简单
作者:
zlnnjit
,
2021-01-30 12:22:11
,
所有人可见
,
阅读 413
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//接受输入
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
//准备
int[][] res = new int[n][m];
int[] dx = {-1, 0, 1, 0};
int[] dy = {0, 1, 0, -1};
//初始值
int x = 0, y = 0, d = 1;
for (int i = 1; i <= n * m; i++) {
res[x][y] = i;
//计算下一跳
int a = x + dx[d], b = y + dy[d];
//判断下一跳撞墙
if (a < 0 || a >= n || b < 0 || b >= m || res[a][b] != 0) {
d = (d + 1) % 4;
a = x + dx[d];
b = y + dy[d];
}
x = a;
y = b;
}
//输出打印
for (int i = 0; i < res.length; i++) {
for (int r : res[i]) {
System.out.print(r + " ");
}
System.out.println();
}
}
}
大佬 打印的第二个for循环是啥意思呀没看懂