56. 螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        if(matrix.length == 0 || matrix[0].length==0)
            return new ArrayList();
        int size = matrix.length*matrix[0].length;
        List<Integer> result = new ArrayList(size);
        for(int top=0, bot=matrix.length, left=0, right=matrix[0].length;
            result.size()!=size;
            top++, bot--, left++, right--){
            for(int i=top,j=left;j<right;j++){
                result.add(matrix[i][j]);
            }
            for(int i=top+1,j=right-1;i<bot;i++){
                result.add(matrix[i][j]);
            }
            for(int i=bot-1,j=right-2;j>left&&i>top;j--){
                result.add(matrix[i][j]);
            }
            for(int i=bot-1,j=left;i>top&&j<right-1;i--){
                result.add(matrix[i][j]);
            }
        }
        return result;
    }
}

 

  最近有点忙,抽空写得,但是我也太菜了,思路没问题,但是循环的边界控制有问题,一个一个试用例调整才修改好。

 

posted on 2021-03-17 11:14  WDX0  阅读(36)  评论(0)    收藏  举报