https://oj.leetcode.com/problems/spiral-matrix-ii/
螺旋矩阵,和题目一一样的思路,这个是产生n*n 矩阵。
#include <iostream> #include <vector> using namespace std; class Solution { public: vector<vector<int> > generateMatrix(int n) { vector<vector<int> > 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<n;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-1<l1+1) break; for(i = p1-1;i>=l1+1;i--) { ans[i][l2] = num; num++; } l1++; l2++; r2--; p1--; } return ans; } };