作者:康博洋2602899791 | 来源:互联网 | 2023-10-10 15:14
https:oj.leetcode.comproblemsspiral-matrix-ii螺旋矩阵,和题目一一样的思路,这个是产生n*n矩阵。#include&am
https://oj.leetcode.com/problems/spiral-matrix-ii/
螺旋矩阵,和题目一一样的思路,这个是产生n*n 矩阵。
#include
#include
using namespace std;
class Solution {
public:
vectorint> > generateMatrix(int n) {
vectorint> > ans;
if(n == 0)
return ans;
if(n ==1)
{
vector<int> ansPiece;
ansPiece.push_back(1);
ans.push_back(ansPiece);
return ans;
}
ans.resize(n);
for(int i = 0;i)
ans[i].resize(n);
int l1,l2,r2,p1;
l1 = 0;
l2 = 0;
r2 = n - 1;
p1 = n -1;
int num = 1;
while(1)
{
int i;
if(num>n*n)
break;
for(i = l2; i <= r2; i++)
{
ans[l1][i] = num;
num++;
}
if(l1+1>p1)
break;
for(i = l1+1;i<= p1;i++)
{
ans[i][r2] = num;
num++;
}
if(r2-1<l2)
break;
for(i = r2-1;i>=l2;i--)
{
ans[p1][i] = num;
num++;
}
if(p1-11)
break;
for(i = p1-1;i>=l1+1;i--)
{
ans[i][l2] = num;
num++;
}
l1++;
l2++;
r2--;
p1--;
}
return ans;
}
};