顺时针打印数组

    科技2022-07-11  90

    1.定义四个变量代表范围,up、down、left、right

    向右走存入整行的值,当存入后,该行再也不会被遍历,代表上边界的 up 加一,同时判断是否和代表下边界的 down 交错向下走存入整列的值,当存入后,该列再也不会被遍历,代表右边界的 right 减一,同时判断是否和代表左边界的 left 交错向左走存入整行的值,当存入后,该行再也不会被遍历,代表下边界的 down 减一,同时判断是否和代表上边界的 up 交错向上走存入整列的值,当存入后,该列再也不会被遍历,代表左边界的 left 加一,同时判断是否和代表右边界的 right 交错 import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { ArrayList<Integer> list=new ArrayList<>(); if(matrix==null||matrix.length==0){ return list; } int up=0; int down=matrix.length-1; int left=0; int right=matrix[0].length-1; while(true){ for(int i=left;i<=right;i++){ list.add(matrix[up][i]); }//从左至右开始打印 up++; if(up>down) break; for(int i=up;i<=down;i++){ list.add(matrix[i][right]); }//从上到下开始打印 right--; if(left>right) break; for(int i=right;i>=left;i--){ list.add(matrix[down][i]); }//从右至左开始打印 down--; if(up>down) break; for(int i=down;i>=up;i--){ list.add(matrix[i][left]); }//从上到下开始打印 left++; if(left>right) break; } return list; } }

     

    Processed: 0.035, SQL: 8