[LeetCode]54. Spiral Matrix
2017-03-11 17:49
531 查看
https://leetcode.com/problems/spiral-matrix/?tab=Description
旋转遍历二维数组
数组可能是[[1,2]]这种case,所以要保证rowBeg <= rowEnd && colBeg <= colEnd
public class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> res = new ArrayList<Integer>();
if (matrix.length == 0) {
return res;
}
int rowBegin = 0;
int rowEnd = matrix.length-1;
int colBegin = 0;
int colEnd = matrix[0].length - 1;
while (rowBegin <= rowEnd && colBegin <= colEnd) {
// Traverse Right
for (int j = colBegin; j <= colEnd; j ++) {
res.add(matrix[rowBegin][j]);
}
rowBegin++;
// Traverse Down
for (int j = rowBegin; j <= rowEnd; j ++) {
res.add(matrix[j][colEnd]);
}
colEnd--;
if (rowBegin <= rowEnd) {
// Traverse Left
for (int j = colEnd; j >= colBegin; j --) {
res.add(matrix[rowEnd][j]);
}
}
rowEnd--;
if (colBegin <= colEnd) {
// Traver Up
for (int j = rowEnd; j >= rowBegin; j --) {
res.add(matrix[j][colBegin]);
}
}
colBegin ++;
}
return res;
}
}
旋转遍历二维数组
数组可能是[[1,2]]这种case,所以要保证rowBeg <= rowEnd && colBeg <= colEnd
public class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> res = new ArrayList<Integer>();
if (matrix.length == 0) {
return res;
}
int rowBegin = 0;
int rowEnd = matrix.length-1;
int colBegin = 0;
int colEnd = matrix[0].length - 1;
while (rowBegin <= rowEnd && colBegin <= colEnd) {
// Traverse Right
for (int j = colBegin; j <= colEnd; j ++) {
res.add(matrix[rowBegin][j]);
}
rowBegin++;
// Traverse Down
for (int j = rowBegin; j <= rowEnd; j ++) {
res.add(matrix[j][colEnd]);
}
colEnd--;
if (rowBegin <= rowEnd) {
// Traverse Left
for (int j = colEnd; j >= colBegin; j --) {
res.add(matrix[rowEnd][j]);
}
}
rowEnd--;
if (colBegin <= colEnd) {
// Traver Up
for (int j = rowEnd; j >= rowBegin; j --) {
res.add(matrix[j][colBegin]);
}
}
colBegin ++;
}
return res;
}
}
相关文章推荐
- Leetcode 54. Spiral Matrix
- leetcode-54. Spiral Matrix
- LeetCode *** 54. Spiral Matrix
- LeetCode-54. Spiral Matrix (JAVA)(顺时针打印矩阵)
- LeetCode_OJ【54】Spiral Matrix
- [LeetCode 54] Spiral Matrix
- Leetcode 54. Spiral Matrix
- leetcode 54. Spiral Matrix
- leetcode.array--54. Spiral Matrix
- Leetcode-54. Spiral Matrix
- LeetCode-54.Spiral Matrix
- leetcode - 54. Spiral Matrix
- leetcode 54. Spiral Matrix
- (java)leetcode-54:Spiral Matrix
- Leetcode 54 Spiral Matrix
- LeetCode(54)Spiral Matrix
- leetcode 54: Jump Game
- LeetCode-54-Spiral Matrix 模拟
- leetcode || Spiral Matrix
- LeetCode 54/59. Spiral Matrix i, ii