思路:好吧,这个题目是很容易的,也是本人到目前为止做的最快的一个题目了(T_T!编程已经成渣了,看看还能不能救)注意临时变量定义的位置,及时清空,或者就在药用的时候定义都可以。
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> S;
int **ret = new int*[n];
for(int i=0;i<n;i++) ret[i] = new int[n];
int number = 0;
int ground = n/2;
for(int k = 0;k<ground;k++){
for(int j = k;j<n-k;j++)
ret[k][j] = ++number;
for(int i = k+1;i<n-k-1;i++)
ret[i][n-k-1] = ++number;
for(int j = n-k-1;j >= k;j--)
ret[n-k-1][j] = ++number;
for(int i=n-k-2;i>k;i--)
ret[i][k] = ++number;
}
if(n%2){
ret[n/2][n/2] = ++number;
}
for(int i = 0;i<n;i++){
vector<int> temp;
for(int j=0;j<n;j++){
temp.push_back(ret[i][j]);
//cout<<ret[i][j]<<" ";
}
S.push_back(temp);
//cout<<endl;
}
return S;
}
};