您的位置:首页 > 其它

[Leetcode]Spiral Matrix

2015-11-13 22:29 246 查看
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]
.

class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int>result;
int m = matrix.size();
if(m < 1)return result;
int n = matrix[0].size();
if(n < 1)return result;
int level = (min(m,n)+1)/2;
for(int l = 0;l < level;l++){
//top
for(int j = l;j < n-l;j++)
result.push_back(matrix[l][j]);
//right
for(int i = l+1;i < m-1-l;i++)
result.push_back(matrix[i][n-1-l]);

//bottom
for(int j = n-1-l;j >= l && (m-l-1)>l;j--) //top != bottom
result.push_back(matrix[m-1-l][j]);

//left
for(int i = m-2-l;i > l && l < (n-1-l);i--) // left != right
result.push_back(matrix[i][l]);
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: