classSolution{public:
vector<vector<int>>generateMatrix(int n){
vector<vector<int>>res(n,vector<int>(n));int left =0, right = n -1, up =0, down = n -1;
n = n * n;int ans =1;while(ans <= n){for(int i = left; i <= right; i++){// if(ans <= n)
res[up][i]= ans++;}
up++;for(int i = up; i <= down; i++){// if(ans <= n)
res[i][right]= ans++;}
right--;for(int i = right; i >= left; i--){// if(ans <= n)
res[down][i]= ans++;}
down--;for(int i = down; i >= up; i--){// if(ans <= n)
res[i][left]= ans++;}
left++;}return res;}};