59. 螺旋矩阵 II
59. 螺旋矩阵 II
题目链接:59. 螺旋矩阵 II
代码如下:
class Solution
{
public:vector<vector<int>> generateMatrix(int n) {if(n==1){return {{1}};}vector<vector<int>> res(n,vector<int>(n));int num=1;int left=0,right=n-1,top=0,bottom=n-1;while(num<=n*n){//从左到右填充,相当于缩小上边界for(int i=left;i<=right;i++){res[top][i]=num++;}top++;//缩小上边界//从上向下填充,相当于缩小右边界for(int i=top;i<=bottom;i++){res[i][right]=num++;}right--; //缩小右边界//从右向左填充,相当于缩小下边界for(int i=right;i>=left;i--){res[bottom][i]=num++;}bottom--;//缩小下边界//从下向上填充,相当于缩小左边界for(int i=bottom;i>=top;i--){res[i][left]=num++;}left++;//缩小左边界}return res;}
};