budd/src/main/java/osc/git/eh3/dfd.java

59 lines
1.5 KiB
Java

package osc.git.eh3;
/**
* Created by lixiangrong on 2016/12/23.
*/
public class dfd {
public static void main(String[] args) {
}
public void printCircle(int[][] matrix, int startX, int startY, int endX, int endY) {
// only one column left
if (startY == endY) {
for (int i = startX; i <= endX; i++ ) {
System.out.println(matrix[i][endY]);
}
return;
}
// only one row left
if (startX == endX) {
for (int i = startY; i <= endY; i++ ) {
System.out.println(matrix[startX][i]);
}
return;
}
for (int i = startY; i < endY; i++ ) {
System.out.println(matrix[startX][i]);
}
for (int i = startX; i < endX; i++ ) {
System.out.println(matrix[i][endY]);
}
for (int i = endY; i > startY; i-- ) {
System.out.println(matrix[endX][i]);
}
for (int i = endX; i > startX; i-- ) {
System.out.println(matrix[i][startY]);
}
}
public void printMatrix(int[][] matrix) {
if (matrix == null) {
return;
}
int startX = 0;
int startY = 0;
int endY = matrix[0].length - 1;
int endX = matrix.length - 1;
while ((startX <= endX) && (startY <= endY)) {
printCircle(matrix, startX, startY, endX, endY);
startX++;
startY++;
endX--;
endY--;
}
}
}