Leetcode Spiral Matrix II
2016-12-24 15:50
561 查看
题意:输出旋转递增矩阵。
思路:简单模拟,注意边界条件。
class Solution {
public:
vector<vector<int> > re;
int l;
vector<vector<int>> generateMatrix(int n) {
l = n - 1;
vector<int> temp(n, 0);
for(int i = 0; i < n; ++ i) re.push_back(temp);
int s = 1;
for(int i = 0; i < ceil(n / 2.0); i ++) {
s = sprial(s, i, n - 2 * i);
}
return re;
}
int sprial(int s,int n, int len) {
if(len == 1) {
re
= s;
return ++ s;
}
for(int i = n; i < l - n; i ++) {
re
[i] = s;
s ++;
}
for(int i = n; i < l - n; ++ i) {
re[i][l - n] = s;
s ++;
}
for(int i = l - n; i > n; -- i) {
re[l - n][i] = s;
s ++;
}
for(int i = l - n; i > n; -- i) {
re[i]
= s;
s ++;
}
return s;
}
};
思路:简单模拟,注意边界条件。
class Solution {
public:
vector<vector<int> > re;
int l;
vector<vector<int>> generateMatrix(int n) {
l = n - 1;
vector<int> temp(n, 0);
for(int i = 0; i < n; ++ i) re.push_back(temp);
int s = 1;
for(int i = 0; i < ceil(n / 2.0); i ++) {
s = sprial(s, i, n - 2 * i);
}
return re;
}
int sprial(int s,int n, int len) {
if(len == 1) {
re
= s;
return ++ s;
}
for(int i = n; i < l - n; i ++) {
re
[i] = s;
s ++;
}
for(int i = n; i < l - n; ++ i) {
re[i][l - n] = s;
s ++;
}
for(int i = l - n; i > n; -- i) {
re[l - n][i] = s;
s ++;
}
for(int i = l - n; i > n; -- i) {
re[i]
= s;
s ++;
}
return s;
}
};
相关文章推荐
- LeetCode Spiral Matrix II 带打印程序
- Leetcode Spiral Matrix II
- LeetCode - Spiral Matrix I && II - Frequent
- LeetCode 59 Spiral Matrix II
- leetcode 81: Spiral Matrix II
- LeetCode——Spiral Matrix II
- LeetCode-59-Spiral Matrix II(Array)-Medium
- 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
- [leetCode] Spiral Matrix II
- LeetCode Spiral Matrix II
- LeetCode Spiral Matrix II
- leetcode Spiral Matrix II
- [LeetCode] Spiral Matrix II
- [leetcode]Spiral Matrix II
- LeetCode 94 Spiral Matrix II
- Leetcode:59. Spiral Matrix II
- #leetcode#Spiral Matrix II
- 【leetcode】Spiral Matrix II
- leetcode Spiral Matrix II
- LeetCode059 Spiral Matrix II