LeetCode Spiral Matrix II

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 ]
]
class Solution {
public:
    vector<vector<int> > generateMatrix(int n) {
    	vector<vector<int> > ret(n, vector<int>(n));
		if(n >= 0)
		{
			int cur = 1;
			for(int layer = 0; layer < n/2; ++layer)
			{
				for(int i = layer; i < n-1-layer; ++i)
					ret[layer][i] = cur++;
				for(int i = layer; i < n-1-layer; ++i)
					ret[i][n-1-layer] = cur++;
				for(int i = n-1-layer; i > layer; --i)
					ret[n-1-layer][i] = cur++;
				for(int i = n-1-layer; i > layer; --i)
					ret[i][layer] = cur++;
			}
			if(1 == n%2)
			{
				ret[n/2][n/2] = cur;
			}
		}
		return ret;	
    }
};



你可能感兴趣的:(Integer,Class,Matrix,layer)