题目:
解答:
按照要求遍历即可。
代码:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
if( n == 0 ) {
vector<vector<int> > ans;
return ans;
}
vector<vector<int> > ans(n, vector<int>(n, 0));
int row = -1,col = -1,num = 1,direction = 2;
while( num <= n * n )
switch( direction ) {
case 2:row++;col++;while( col < n && ans[row][col] == 0 ) ans[row][col++] = num++;direction = 3;break;
case 3:col--;row++;while( row < n && ans[row][col] == 0 ) ans[row++][col] = num++;direction = 4;break;
case 4:row--;col--;while( col >= 0 && ans[row][col] == 0 ) ans[row][col--] = num++;direction = 1;break;
case 1:;col++;row--;while( row >= 0 && ans[row][col] == 0 ) ans[row--][col] = num++;direction = 2;break;
}
return ans;
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)