码迷,mamicode.com
首页 > 其他好文 > 详细

Spiral Matrix

时间:2015-03-08 10:25:01      阅读:105      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!