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的主要内容,如果未能解决你的问题,请参考以下文章