您的位置:首页 > Web前端

LintCode-剑指Offer-(374)螺旋矩阵

2015-11-29 13:22 363 查看
class Solution {
public:
/**
* @param matrix a matrix of m x n elements
* @return an integer array
*/
vector<int> spiralOrder(vector<vector<int>>& matrix) {
// Write your code here
vector<int> tmpint;
if (matrix.size()==0)return tmpint;
bool ** visited;
visited = new bool *[matrix.size()];
for (int i = 0;i<matrix.size();i++){
visited[i] = new bool[matrix[i].size()];
for (int j = 0;j<matrix[i].size();j++){
visited[i][j] = false;
}
}
int dx[4] = {1,0,-1,0};
int dy[4] = {0,1,0,-1};
int dxyloc = 0;
int ii = 0;
int jj = 0;

while (true)
{
if (ii==-1||jj==-1||ii==matrix.size()||jj==matrix[0].size()||visited[ii][jj]==true){
ii = ii-dy[dxyloc];
jj = jj-dx[dxyloc];
dxyloc = (dxyloc+1)%4;
if (visited[ii+dy[dxyloc]][jj+dx[dxyloc]]==true){
return tmpint;
}
}
else{
tmpint.push_back(matrix[ii][jj]);
visited[ii][jj] = true;
}
ii = ii+dy[dxyloc];
jj = jj+dx[dxyloc];
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LintCode