螺旋数组

顺时针打印矩阵

http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a

class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
// 矩阵的螺旋序列
// 初始化vis记录是否被访问过
vector<int> res;
int row = matrix.size(), col = matrix[0].size();
vector<vector<int>> vis(row, vector<int>());//初始层数,赋值
for (int i = 0; i < row; i ++) {
vis[i].resize(col);
}
int x = 0, y = 0;
while(true) {
// 依次先向右,再向下,再向左,再向上,每次更新vis
for(; y < col && !vis[x][y]; y ++) res.push_back(matrix[x][y]), vis[x][y] = 1;
y --; x ++;
for(; x < row && !vis[x][y]; x ++) res.push_back(matrix[x][y]), vis[x][y] = 1;
x --; y --;
for(; y >= 0 && !vis[x][y]; y --) res.push_back(matrix[x][y]), vis[x][y] = 1;
y ++; x --;
for(; x >= 0 && !vis[x][y]; x --) res.push_back(matrix[x][y]), vis[x][y] = 1;
x ++; y ++;
if(res.size() == row * col) break;
}
return res;
}
};</int></int></int></int></int>

全部评论

相关推荐

头像
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务