54. 螺旋矩阵
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了54. 螺旋矩阵相关的知识,希望对你有一定的参考价值。
54. 螺旋矩阵
一、题目
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
二、参考代码
class Solution
public List<Integer> spiralOrder(int[][] matrix)
int m = matrix.length;
int n = matrix[0].length;
int x1 = 0, y1 =0 ; // x1 上边界 y1 左边界
int x2 = m-1, y2 = n-1; // x2 下边界 y2 右边界
List<Integer> res = new LinkedList<>();
while(res.size() < m*n)
// 在顶部从左向右遍历 x1 上边界 x2 表示下边界
if(x1 <= x2)
for(int j = y1; j <= y2; j++ )
res.add(matrix[x1][j]);
// 上边界下移
x1++;
// 在右侧从上向下遍历
if(y1 <= y2)
for(int i = x1; i <= x2;i++)
res.add(matrix[i][y2]);
// 右边界左移
y2--;
// 在底部从右向左遍历
if(x1 <= x2)
for(int j = y2; j >= y1; j--)
res.add(matrix[x2][j]);
// 下边界 上移
x2--;
// 在左侧从下向上遍历
if(y1<=y2)
for(int i = x2; i >= x1;i--)
res.add(matrix[i][y1]);
// 左边界右移
y1 ++;
return res;
以上是关于54. 螺旋矩阵的主要内容,如果未能解决你的问题,请参考以下文章