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,
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
解题思路:
http://blog.csdn.net/kangrydotnet/article/details/44727955的姐妹篇。不停的进行扫描而已。注重分析能力。
源代码:
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){
//赋值上边
for(int i=y; i < n-y; i++){
d[x][i] = data;
data++;
}
//赋值右边
for(int i=x+1; i< n-x; i++){
d[i][n-y-1]=data;
data++;
}
//赋值下边
for(int i=n-y-2; i>=y; i--){
d[n-x-1][i]=data;
data++;
}
//赋值左边
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;
}
};原文:http://blog.csdn.net/kangrydotnet/article/details/44874039