JAvaアルゴリズム----斜角マトリクスの実現
1794 ワード
package com.zhenlvwang.interview;
/**
* N*N ,
* 1 3 6
* 2 5
* 4
* @author yangjianzhou
*
*/
public class Problem3 {
public static void main(String[] args) {
Problem3 p = new Problem3();
int [][] xx =p.createMatrix(10);
for(int i=0;i<xx.length;i++){
for(int j=0;j<xx[i].length;j++){
System.out.print(xx[i][j]+" ");
}
System.out.println();
}
}
public int[][] createMatrix(int N){
int[][] xx = new int[N][N];
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(i==0&&j==0){
xx[i][j]=1;
}else if(j==0){
xx[i][j] = xx[i-1][j]+i;
}else if(i+j<N){
xx[i][j] = xx[i][j-1]+j+1+i;
}else{
xx[i][j] = 0;
}
}
}
for(int i=N-1;i>=0;i--){
for(int j=N-1;j>=0;j--){
if(i==N-1&&j==N-1){
xx[i][j] = N*N;
}else if(j==N-1){
xx[i][j] = xx[i+1][j]-(N-i-1);
}else if(i+j>=N){
xx[i][j] = xx[i][j+1]-2*N+i+j+1;
}
}
}
return xx;
}
}
1 3 6 10 15 21 28 36 45 55
2 5 9 14 20 27 35 44 54 64
4 8 13 19 26 34 43 53 63 72
7 12 18 25 33 42 52 62 71 79
11 17 24 32 41 51 61 70 78 85
16 23 31 40 50 60 69 77 84 90
22 30 39 49 59 68 76 83 89 94
29 38 48 58 67 75 82 88 93 97
37 47 57 66 74 81 87 92 96 99
46 56 65 73 80 86 91 95 98 100