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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { ArrayList<Integer> result = new ArrayList<>(); int width = matrix.length; int Length = matrix[0].length; int up = 0; int down = width-1; int left = 0; int right = Length-1; int i=0; int j=0; int count = 1; while(true){ switch (count%4) { case 1: if(j>right){ j--; i++; up++; count++; }else{ result.add(matrix[i][j++]); } break; case 2: if(i>down){ right--; count++; i--; j--; }else{ result.add(matrix[i++][j]); } break; case 3: if(j<left){ down--; count++; j++; i--; }else{ result.add(matrix[i][j--]); } break; case 0: if(i<up){ left++; count++; i++; j++; }else{ result.add(matrix[i--][j]); } break; } if(up>down||left>right){ break; } } return result; } }
|