刚看到这题的时候确实觉得难
但理清了思路以后就迎刃而解了
首先你要自己画一些简单的例子 来找到遍历的规律
我们可以画两个例子来遍历 发现它是先从第一行开始遍历的 一个一个元素往左下遍历
然后超过范围就退出该次循环 直到第一行的最后一个元素遍历完
我们发现往往还有元素没有遍历完 而此时就是从第二行的最后一个元素开始继续往左下遍历
再第三行的最后一个元素 直到遍历到最后一行 此时自然脑海中就有大概的逻辑了
接下来上代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int y=sc.nextInt();
int[][] matrix=new int[x][y];
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
matrix[i][j]= sc.nextInt();//初始化
}
}
for(int i=0;i<y;i++){//先把第一行的枚举完
int x1=0;
int y1=i;
while(x1<x&&y1>=0&&y1<y){
System.out.println(matrix[x1][y1]);
y1--;
x1++;
}
}
for(int j=1;j<x;j++){//再把剩余列的枚举完
int x1=j;
int y1=y-1;
while(x1<x&&y1>=0&&y1<y){
System.out.println(matrix[x1][y1]);
x1++;
y1--;
}
}
}
}
搞定