class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
int row = matrix.size();//规定下边界
int col = matrix[0].size();//规定右边界
int sum = row * col;
vector<int> v;
if (col == 0 || row == 0)return v;
int i = 0, j = 0;
int _left = 0, _up = 0;//规定左边界和上边界,防止ij指针越界
while (v.size() < sum) {
while (j < col)
v.push_back(matrix[i][j++]);
j--; i++; col--;
while (v.size() < sum&&i < row)
v.push_back(matrix[i++][j]);
i--; j--; row--;
while (v.size() < sum&&j >= _left)
v.push_back(matrix[i][j--]);
j++; i--; _left++;
while (v.size() < sum&&i > _up)
v.push_back(matrix[i--][j]);
i++; j++; _up++;
}
return v;
}
};
剑指offer----顺时针打印矩阵数组
最新推荐文章于 2021-07-22 20:17:17 发布