LeetCode 59 Spiral Matrix II
2017-05-26 10:58
489 查看
题意:
画出n*n的蛇形矩阵。
思路:
与 http://blog.csdn.net/houserabbit/article/details/72763411 一致,更简单一点,因为它是正方形……
这题还可以扩展,因为如果不是让画出矩阵,只是输出坐标(x,y)的数字是几,那么完全可以不开空间存矩阵,按照矩阵生成方法生成到(x,y)坐标时输出即可。
代码:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> ans;
for (int i = 0; i < n; ++i) {
ans.push_back(vector<int>(n));
}
int num = 1;
for (int i = 0; i < n / 2; ++i) {
int m = n - i * 2;
for (int j = 0; j < m - 1; ++j) ans[i][i + j] = num++;
for (int j = 0; j < m - 1; ++j) ans[i + j][i + m - 1] = num++;
for (int j = m - 1; j > 0; --j) ans[i + m - 1][i + j] = num++;
for (int j = m - 1; j > 0; --j) ans[i + j][i] = num++;
}
if (n & 1) {
ans[n / 2][n / 2] = num++;
}
return ans;
}
};
画出n*n的蛇形矩阵。
思路:
与 http://blog.csdn.net/houserabbit/article/details/72763411 一致,更简单一点,因为它是正方形……
这题还可以扩展,因为如果不是让画出矩阵,只是输出坐标(x,y)的数字是几,那么完全可以不开空间存矩阵,按照矩阵生成方法生成到(x,y)坐标时输出即可。
代码:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> ans;
for (int i = 0; i < n; ++i) {
ans.push_back(vector<int>(n));
}
int num = 1;
for (int i = 0; i < n / 2; ++i) {
int m = n - i * 2;
for (int j = 0; j < m - 1; ++j) ans[i][i + j] = num++;
for (int j = 0; j < m - 1; ++j) ans[i + j][i + m - 1] = num++;
for (int j = m - 1; j > 0; --j) ans[i + m - 1][i + j] = num++;
for (int j = m - 1; j > 0; --j) ans[i + j][i] = num++;
}
if (n & 1) {
ans[n / 2][n / 2] = num++;
}
return ans;
}
};
相关文章推荐
- 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
- 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】Array——Spiral MatrixII(59)
- Leetcode:59. Spiral Matrix II
- (Java)LeetCode-59. Spiral Matrix II
- 【LEETCODE】59-Spiral Matrix II
- leetcode——59——Spiral Matrix II
- leetcode-java-59. Spiral Matrix II
- [Leetcode] 59. Spiral Matrix II
- Leetcode 59. Spiral Matrix II