LeetCode 59. Spiral Matrix II
Solution1:我的答案
思路和第54题差不多,就是有点慢。。。。
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
if (n == 1) return {{1}};
vector<vector<int> > matrix(n, vector<int> (n, 0));//初始化为0矩阵
int row_lower = 0, row_upper = n - 1, col_lower = 0,
col_upper = n - 1, index = 0, temp = 1;//temp是需要填充的数字
while (row_lower <= row_upper && col_lower <= col_upper) {
if (row_lower == row_upper && col_lower == col_upper) { //只剩下一行
matrix[row_lower][col_lower] = temp;
} else {//四个for循环做遍历读入数据
for (int i = index; i < n - 1 - index; i++)
matrix[row_lower][i] = temp++;
for (int i = index; i < n - 1 - index; i++)
matrix[i][col_upper] = temp++;
for (int i = n - 1 - index; i > index; i--)
matrix[row_upper][i] = temp++;
for (int i = n - 1 - index; i > index; i--)
matrix[i][col_lower] = temp++;
}
index++;
row_lower++;row_upper--;
col_lower++;col_upper--;
}
return matrix;
}
};