【LeetCode】59. Spiral Matrix II
2017-03-09 17:29
465 查看
题目描述
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 ] ]
解题思路
和【LeetCode】54. Spiral Matrix 思路一样。只是此次需要一个全局的计数器,每次往矩阵中写入当前计数值并增加计数器即可。AC代码
class Solution { public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> ans; for (int i = 0; i < n; ++i) { vector<int> temp(n, 0); ans.push_back(temp); } vector<vector<int>> dirs = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; int nSteps[2] = {n, n -1}; int curDir = 0; int curRow = 0, curCol = -1; int totalCnt = 1; int cnt = 0; while (nSteps[curDir % 2]) { curRow += dirs[curDir][0]; curCol += dirs[curDir][1]; ans[curRow][curCol] = totalCnt; totalCnt++; cnt++; if (cnt == nSteps[curDir % 2]) { cnt = 0; nSteps[curDir % 2]--; curDir = (curDir + 1) % 4; } } return ans; } };
相关文章推荐
- [C语言][LeetCode][59]Spiral Matrix II
- LeetCode 59. Spiral Matrix II
- leetcode[59]Spiral Matrix II
- [leetcode-59]spiral matrixII(java)
- LeetCode 59. Spiral Matrix II
- LeetCode 59 Spiral Matrix II
- LeetCode 59 Spiral Matrix II
- 【C++】【LeetCode】54. Spiral Matrix && 59. Spiral Matrix II
- Leetcode 59 Spiral Matrix II
- leetcode59-Spiral Matrix II(生成蛇形矩阵)
- LeetCode 59. Spiral Matrix II
- LeetCode 59 Spiral Matrix II
- LeetCode54/59 Spiral Matrix I/II
- LeetCode 59. Spiral Matrix II
- Leetcode:59. Spiral Matrix II
- [LeetCode]59 Spiral Matrix II
- leetcode[59]Spiral Matrix II
- 个人记录-LeetCode 59. Spiral Matrix II
- 【leetcode】Array——Spiral MatrixII(59)
- (Java)LeetCode-59. Spiral Matrix II