之前在面试的时候遇到过这样一个题目:
观察下列数字规律,并将其打印在控制台
3 2 9
4 1 8
5 6 7
13 12 11 10 25
14 03 02 09 24
15 04 01 08 23
16 05 06 07 22
17 18 19 20 21
..........
解题思路:
(1)每个矩阵看成一圈,一圈一圈循环赋值
(2)一圈赋值完成之后,控制向外扩张一圈,就可以实现这个算法了
说明:下面是我加以改进过的算法,实现的任意方向的旋转(顺时针逆时针旋转,上下左右控制初始旋转方向(总共8中构建方法))
package util;
import java.util.regex.Pattern;
public class HuiXuanJuZheng {
private int [][] matrix;
private int x ;
private int y;
private String rotateDirection;
private String direction;
private String directionInit;
private int layer;
/**
*
* @param 圈数
* @param CCK|CK,逆时针|顺时针
* @param up|down|lef