输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
例如:
input:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
output:
1 2 3 4
8 12 16 15
14 13 9 5
6 7 11 10
核心代码如下:
vector<int> printMatrix(vector<vector<int> > matrix) {
int row = matrix.size() - 1;
int col = matrix[0].size() - 1;
int total = (row + 1)*(col + 1);
int circle = 0;
vector<int> ans;
int i = 0, j = 0;
while(ans.size() < total){
while(j <= col){
ans.push_back(matrix[i][j]);
j++;
}
j--;i++;
while(i <= row && ans.size() < total){
ans.push_back(matrix[i][j]);
i++;
}
i--;j--;
while(j >= circle && ans.size() < total){
ans.push_back(matrix[i][j]);
j--;
}
j++;i--;
while(i >= circle+1 && ans.size() < total){
ans.push_back(matrix[i][j]);
i--;
}
i++;j++;
circle++;
row--;
col--;
}
return ans;
}