您的位置:首页 > 其它

LeetCode 054 Spiral Matrix

2016-06-23 22:58 127 查看
之前因为投paper停更了一段时间,现在继续更新。

题目大意:给出m行n列的矩阵,返回从外围到中间的螺旋序列。

按照圈数循环,然后每圈中依次访问4条边。

代码:

vector<int> spiralOrder(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = 0;

if(m != 0)
n = matrix.front().size();

int m0 = 0;
int n0 = 0;

int m1 = m - 1;
int n1 = n - 1;

vector<int> result;

while(m0 <= m1 && n0 <= n1) {
for(int i = n0 ; i <= n1 ; i++)
result.push_back(matrix[m0][i]);
for(int i = m0 + 1 ; i <= m1 ; i++)
result.push_back(matrix[i][n1]);

if(m0 != m1)
for(int i = n1 - 1 ; i >= n0 ; i--)
result.push_back(matrix[m1][i]);

if(n0 != n1)
for(int i = m1 - 1 ; i >= m0 + 1 ; i--)
result.push_back(matrix[i][n0]);

m0++;
n0++;
m1--;
n1--;
}

return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode