如图对二维数组进行上图遍历
package test;
public class text1 {
public static void main(String[] args) {
int [][]a= {
{1,5,9,3,7},
{1,5,9,3,-7},
{1,5,9,3,7},
{1,5,9,3,7},
{1,5,9,3,7},
{1,5,9,3,7},
{1,5,9,3,7},
{1,5,9,3,7},
{-1,5,9,3,7}
};
int m=a.length;
int n=a[0].length;
int sum=m+n;
for(int i=0;i<n;i++) {
for(int j=0;j<=i;j++) {
System.out.print(a[j][i-j]);
}
}
for(int i=0;i<m-n;i++) {
for(int j=1+i,p=4;j<=n+i&&p>=0;j++,p--) {
System.out.print(a[j][p]);
}
}
for(int q=0;q<n-1;q++) {
for(int i=n-1,j=m-n+1;i>q&&j<m;i--,j++) {
System.out.print(a[m-j][i]);
}
}
}
}
首先对千五行五列进行倾斜遍历:
对中间进行遍历:
对后部进行遍历: