1、二维数组螺旋输出例如:输入数组12345678910111213141516输出数组12341213145111615610987Java实现方案ArrClass.java/** * 二维数组的元素进行螺旋排列,二维数组是有序的,输出螺旋排序 * @author zdd */public class ArrClass { private int l, r, u, d; //左右上下 private int n, m; //行列 private int i, j; //当前走到的位置; private
2、 int[][]arr;//结果集 private enum Direction {//枚举 right, down, left, up; } private Direction pos; private void init(int n, int m) { this.n = n; this.m = m; this.l = -1; //左边界 this.r = m; //右边界 this.u = 0; //上边界
3、 this.d = n; //下边界 this.i = 0; this.j = 0; this.arr = new int[n][m]; this.pos = Direction.right;//初始向右走 } /** * 处理,螺旋排序 * @param arr 二维数组,每行的列数必须相同; * @param n 参数arr的行数 * @param m 参数arr的列数 */ public void
4、 deal(Integer [][] arr, int n, int m) { this.init(n, m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int d = arr[i][j]; boolean flag = push(d); while(!flag) {