Leetcode54 Spiral Matrix

Posted xuweimdm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode54 Spiral Matrix相关的知识,希望对你有一定的参考价值。

Spiral Matrix

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

For example,
Given the following matrix:

[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]

You should return [1,2,3,6,9,8,7,4,5].

Solution

  • 像剥洋葱一样,层层往内推进。注意边界条件
public class Solution 
    public List<Integer> spiralOrder(int[][] matrix) 
        List<Integer> result = new ArrayList<Integer>();
        int m = matrix.length;
        if(m==0) return result;
        int n = matrix[0].length;
        if(n==0) return result;
        for(int i=0;i<(Math.min(m,n)+1)/2;i++)
            for(int j=i;j<n-i;j++) result.add(matrix[i][j]);//左至右
            for(int j=i+1;j<m-i;j++) result.add(matrix[j][n-i-1]);//上至下
            for(int j=n-i-2;(m-1>2*i)&&j>=i;j--) result.add(matrix[m-i-1][j]);//右至左,注意得保证m-i-1>i
            for(int j=m-i-2;(n-1>2*i)&&j>i;j--) result.add(matrix[j][i]);//下至上,注意得保证n-i-1>i
        
        return result;        
    

以上是关于Leetcode54 Spiral Matrix的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode54 Spiral Matrix

LeetCode 54. Spiral Matrix

[LeetCode]Spiral Matrix 54

[LeetCode]54. Spiral Matrix

[leetcode][54] Spiral Matrix

LeetCode54 Spiral Matrix