如上图的二维数组,按照螺旋输出后 为 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
java代码:
public class SpiralorderTest {
public int a[][] = {{1,2,3,4,5},{16,17,18,19,6},{15,24,25,20,7},{14,23,22,21,8},{13,12,11,10,9}};
public int n = 5;
public int m = 5;
public void spiralorder(){
int x = 0,y = 0;
int beginX = 0,endX = m-1;
int beginY = 0,endY = n-1;
while(true){
for(int i = beginX;i<=endX;i++){
System.out.print(a[y][i]+" ");
}
if(beginY != endY){
x = endX;
beginY++;
}else break;
for(int j = beginY;j<=endY;j++){
System.out.print(a[j][x]+" ");
}
if(beginX != endX){
y = endY;
endX--;
}else break;
for(int i = endX;i>=beginX;i--){
System.out.print(a[y][i]+" ");
}
if(beginY != endY){
x = beginX;
endY--;
}else break;
for(int j = endY;j>=beginY;j--){
System.out.print(a[j][x]+" ");
}
if(beginX != endX){
y = beginY;
beginX++;
}else break;
}
}
public static void main(String[] args) {
SpiralorderTest sot = new SpiralorderTest();
sot.spiralorder();
}
}