螺旋矩阵(力扣29)
考察循环不变量
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> generateMatrixx(n,vector<int>(n,0));
int left=0,top=0,bottom=n-1,right=n-1;
int p=1;
while(left<=right&&top<=bottom)
{for(int i=left;i<=right;i++)
{
generateMatrixx[top][i]=p;
p++;
}
top++;
for(int i=top;i<=bottom;i++)
{
generateMatrixx[i][right]=p;
p++;
}
right--;
for(int i=right;i>=left;i--)
{
generateMatrixx[bottom][i]=p;
p++;
}
bottom--;
for(int i=bottom;i>=top;i--)
{
generateMatrixx[i][left]=p;
p++;
}
left++;}
return generateMatrixx;
}
};