/***
* 分治法螺旋输出矩阵,如上图 将1,2,3,4为一组,一次分为3组,分别处理* @param result 初始化n*n矩阵
* @param number 数字总和n*n
* @param begin 起始位置result[0][0]
* @param size
* @return
*/
public static int[][] generateRotate(int[][] result,int number, int begin, int size){
if(size == 1){
result[begin][begin] = number;
return result;
}
if(size == 0){
return result;
}
int i = begin;
int j = begin;
for(int k = 0; k < size - 1; k++){
result[i][j] = number;
number++;
j++;
}
for(int k = 0; k < size - 1; k++){
result[i][j] = number;
number++;
i++;
}
for(int k = 0; k < size - 1; k++){
result[i][j] = number;
number++;
j--;
}
for(int k = 0; k < size - 1; k++){
result[i][j] = number;
number++;
i--;
}
//递归调用return generateRotate(result, number, begin + 1, size - 2);
}