package array;
import java.util.ArrayList;
/**
* Created by bruce_shan on 2018/6/28 17:31.
* Description : 顺æ¶éæå°æ°ç»
*/
public class Print2DArray {
public ArrayList printMatrix(int [][] matrix) {
int tr = 0, tc = 0;
int dr = matrix.length - 1 // è¡é¿
, dc = matrix[0].length - 1; // åé¿
ArrayList list = new ArrayList<>();
while (tr <= dr && tc <= dc) {
printMatrixBoard(tr, tc, dr, dc, list, matrix);
tr++;
tc++;
dr--;
dc--;
}
return list;
}
/**
* æå°ä¸ä¸ªç©å½¢è¾¹æ¡
* @param (TR,TC) å·¦ä¸è§åæ
* @param (DR,DC) å³ä¸è§åæ
* @return
*/
public void printMatrixBoard(int TR,int TC ,int DR,int DC,ArrayList ret,int[][] matrix){
// --> è¿å¨ TRä¸å TCè·çåå TC --> DC
for (int i = TC; i <= DC; i++) {
System.out.print(" "+matrix[TR][i]);
ret.add(matrix[TR][i]);
}
// ç®å¤´æä¸è¿å¨ DC ä¸å TR->DR
for (int i = TR+1; i <= DR ; i++) {
System.out.print(" "+matrix[i][DC]);
ret.add(matrix[i][DC]);
}
// <--- è¿å¨ DRä¸å DC-->TC
for (int i = DC -1; TR!=DR && i >= TC ; i--) {
System.out.print(" "+matrix[DR][i]);
ret.add(matrix[DR][i]);
}
// åä¸è¿å¨ TC çºµåæ ä¸å æ¨ªåæ éå DR--> TR
for (int i = DR-1; TC!=DC && i > TR; i--) {
System.out.print(" "+matrix[i][TC]);
ret.add(matrix[i][TC]);
}
System.out.println();
}
public static void main(String[] args) {
int[][] array = {{1}};
Print2DArray print2DArray = new Print2DArray();
ArrayList list = print2DArray.printMatrix(array);
for(Integer item: list){
System.out.print(" "+item);
}
}
}