Spiral Matrix II
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given N = 3 ,
You should return the following matrix:
[[1, 2, 3], [8, 9, 4], [7, 6, 5]]
Problem Solving Ideas:
Http://blog.csdn.net/kangrydotnet/article/details/44727955 's sister article. Keep scanning. Focus on analytical skills.
Source:
Class Solution {public:vector<vector<int> > Generatematrix (int n) {int** d=new int*[n]; for (int i=0; i<n; i++) {D[i] = new Int[n]; } int x=0, y=0; int data=1; while (data<=n*n) {//assignment top for (int i=y; i < n-y; i++) {d[x][i] = data; data++; }//assignment to the right for (int i=x+1; i< n-x; i++) {d[i][n-y-1]=data; data++; }//assignment below for (int i=n-y-2; i>=y; i--) {d[n-x-1][i]=data; data++; }//Assignment left for (int i=n-x-2; i>x; i--) {d[i][y] = data; data++; } x + +; y++; } vector<vector<int>> result; for (int i=0; i<n; i++) {vector<int> row; for (int j=0; j<n; J+ +) {Row.push_back (d[i][j]); } result.push_back (row); } for (int i=0; i<n; i++) {delete[] d[i]; } delete[] D; return result; }};
[Leetcode] Spiral Matrix II