螺旋矩阵

题目:

给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。

样例:

给定如下矩阵:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
应返回 [1,2,3,6,9,8,7,4,5]。

思路:

  • 如果只有一行或者一列,只要依次输出即可。
  • 如果多行多列,就依次向右,向下,向左,向上操作,从大圈到小圈;每转完一圈,行列各减少2;起点行列各加1。

参考答案:

class Solution {
public:
    /*
     * @param matrix: a matrix of m x n elements
     * @return: an integer list
     */
    vector spiralOrder(vector> &matrix) {
        // write your code here
        vector res;
        if(matrix.empty())  return res;
        int m = matrix.size();
        int n = matrix[0].size();
        int row=0;
        int col=0;
        
        while(m>0 && n>0)
        {
            if(m==1){//只有一行的情况
                for(int i=0; i

你可能感兴趣的:(矩阵,算法)