脚本宝典收集整理的这篇文章主要介绍了[LeetCode] 59. Spiral Matrix II,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Given a positive integer n, generate an n x n matrix filled with elements from 1 to n2 in spiral order.
Example 1:
Input: n = 3 Output: [[1,2,3],[8,9,4],[7,6,5]]
用模拟写的,按层模拟见官方题解https://leetcode-cn wangt.cc /problems/spiral-matrix-ii/solution/luo-xuan-ju-zhen-ii-by-leetcode-solution-f7fp/
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int mni = 0, mxi = n - 1;
int mnj = 0, mxj = n - 1;
int i = 0, j = 0, di = 0, dj = 1;
vector<vector<int>> ans;
ans.resize(n);
for (int i = 0; i < n; i++) {
ans[i].resize(n);
}
int cur = 1;
while(mni <= mxi && mnj <= mxj) {
ans[i][j] = cur++;
if (di == -1 && i == mni && j == mnj) {
di = 0;
dj = 1;
mnj++;
} else if (dj == 1 && i == mni && j == mxj) {
di = 1;
dj = 0;
mni++;
} else if (di == 1 && i == mxi && j == mxj) {
di = 0;
dj = -1;
mxj--;
} else if (dj == -1 && i == mxi && j == mnj) {
di = -1;
dj = 0;
mxi--;
}
i += di;
j += dj;
}
return ans;
}
};
以上是脚本宝典为你收集整理的[LeetCode] 59. Spiral Matrix II全部内容,希望文章能够帮你解决[LeetCode] 59. Spiral Matrix II所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。