Spiral Matrix II leetcode java
2014-08-03 02:17
591 查看
题目:
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n =
You should return the following matrix:
2 int[][] res = new int
;
3 int k = 1;
4 int top = 0, bottom = n - 1, left = 0, right = n - 1;
5 while (left < right && top < bottom) {
6 for (int j = left; j < right; j++) {
7 res[top][j] = k++;
8 }
9 for (int i = top; i < bottom; i++) {
res[i][right] = k++;
}
for (int j = right; j > left; j--) {
res[bottom][j] = k++;
}
for (int i = bottom; i > top; i--) {
res[i][left] = k++;
}
left++;
right--;
top++;
bottom--;
}
if (n % 2 != 0)
res[n / 2][n / 2] = k;
return res;
}
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 ] ] 题解: 这道题跟Spiral Matrix想法也是类似的,就是依照矩阵从外圈到内圈建立。 要考虑如果是奇数行列的话,最中心的那个点要单加。 代码如下:1 public int[][] generateMatrix(int n) {
2 int[][] res = new int
;
3 int k = 1;
4 int top = 0, bottom = n - 1, left = 0, right = n - 1;
5 while (left < right && top < bottom) {
6 for (int j = left; j < right; j++) {
7 res[top][j] = k++;
8 }
9 for (int i = top; i < bottom; i++) {
res[i][right] = k++;
}
for (int j = right; j > left; j--) {
res[bottom][j] = k++;
}
for (int i = bottom; i > top; i--) {
res[i][left] = k++;
}
left++;
right--;
top++;
bottom--;
}
if (n % 2 != 0)
res[n / 2][n / 2] = k;
return res;
}
Reference:leetcodenotes.wordpress.com/2013/11/23/leetcode-spiral-matrix-%E6%8A%8A%E4%B8%80%E4%B8%AA2d-matrix%E7%94%A8%E8%9E%BA%E6%97%8B%E6%96%B9%E5%BC%8F%E6%89%93%E5%8D%B0/
相关文章推荐
- 牛客:剑指offer:顺时针打印矩阵 (Java)(同leetcode的spiral matrix i 和ii)
- (Java)LeetCode-59. Spiral Matrix II
- [leetcode-59]spiral matrixII(java)
- Java for LeetCode 059 Spiral Matrix II
- 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
- leetcode-java-59. Spiral Matrix II
- leetcode JAVA Spiral Matrix II 难度系数3 3.19
- [Leetcode] Spiral Matrix II (Java)
- LeetCode题解:Spiral Matrix I and II
- [leetcode]Spiral Matrix II
- LeetCode : Spiral Matrix II
- leetcode -- Spiral Matrix II
- leetcode 81: Spiral Matrix II
- [Leetcode] Spiral Matrix (Java)
- leetcode Spiral Matrix II
- LeetCode | Spiral Matrix II
- [LeetCode]Spiral Matrix II
- [LeetCode] Spiral Matrix II
- Spiral Matrix II 产生正方形的旋转矩阵@LeetCode
- LeetCode - Spiral Matrix II