首页 > 其他 > 详细

Spiral Matrix

时间:2015-03-08 10:23:10      阅读:214      评论:0      收藏:0      [点我收藏+]

Spiral Matrix

问题:

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

思路:

  矩阵螺旋访问模板

我的代码:

技术分享
public class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        List<Integer> list = new ArrayList<Integer>();
        if(matrix == null || matrix.length == 0 || matrix[0].length == 0)   return list;
        int row = matrix.length;
        int col = matrix[0].length;
        int x1 = 0;
        int y1 = 0;
        while(row > 0 && col > 0)
        {
            int x2 = x1 + row - 1;
            int y2 = y1 + col - 1;
            for(int i = y1; i <= y2; i++)
            {
                list.add(matrix[x1][i]);
            }
            for(int i = x1 + 1; i < x2; i++)
            {
                list.add(matrix[i][y2]);
            }
            if(row > 1)
            {
                for(int i = y2; i >= y1; i--)
                {
                    list.add(matrix[x2][i]);
                }
            }
            if(col > 1)
            {
                for(int i = x2 - 1; i > x1; i--)
                {
                    list.add(matrix[i][y1]);
                }
            }
            row -= 2;
            col -= 2;
            x1 ++;
            y1 ++;
        }
        return list;
    }
}
View Code

学习之处:

  • 标记好左上角和右下角,防止越界
  • 用矩阵螺旋访问模板简单易行

Spiral Matrix

原文:http://www.cnblogs.com/sunshisonghit/p/4321324.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!