题目描述:
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
样例
输入:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]
算法:
class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
vector<int>value;
if(matrix.size() == 0)
{
return value;
}
int row = matrix.size(), col = matrix[0].size();
int left = 0, right = col-1, up = 0, down = row-1;
int count = 0;
int i=0, j=0;
while(count < row*col)
{
i = up;
j = left;
while(count < row*col && j <= right)
{
value.push_back(matrix[i][j]);
j++;
count++;
}
up++;
i = up;
j = right;
while(count < row*col && i <= down)
{
value.push_back(matrix[i][j]);
i++;
count++;
}
right--;
i = down;
j = right;
while(count < row*col && j >= left)
{
value.push_back(matrix[i][j]);
j--;
count++;
}
down--;
i = down;
j = left;
while(count < row*col && i>=up)
{
value.push_back(matrix[i][j]);
i--;
count++;
}
left++;
}
return value;
}
};