Leetcode 54 Spiral Matrix

    技术2022-07-12  77

    思路: 简单粗暴,就按照顺序把数字加入到list中,采用的方法是一层一层(从外向里),然后每一层也有自己的顺序,上行(up)->右列(right)->下行(down)->左列(left)。整个循环中要保证up <= down && left <= right。下面展示代码:

    class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> list = new ArrayList<>(); if(matrix.length == 0) return list; int row = matrix.length; int col = matrix[0].length; int up = 0, down = row - 1, left = 0, right = col - 1; while(up <= down && left <= right){ // 上行 for(int i = left; i <= right; i++){ list.add(matrix[up][i]); } // 右列 for(int i = up + 1; i <= down; i++){ list.add(matrix[i][right]); } // 下行 if(up == down) return list; for(int i = right - 1; i >= left; i--){ list.add(matrix[down][i]); } // 左列 if(left == right) return list; for(int i = down - 1; i > up; i-- ){ list.add(matrix[i][left]); } up++; down--; left++; right--; } return list; } }

    总结:无

    Processed: 0.014, SQL: 9