public class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> result = new ArrayList<Integer>();
if (matrix == null || matrix.length < 1 || matrix[0].length < 1) {
return result;
}
int row = matrix.length;
int col = matrix[0].length;
int r = row;
int c = col;
int level = 0;
while (r > 0 && c > 0) {
if (r == 1) {
for (int j = level; j < col - level; j++) {
result.add(matrix[level][j]);
}
break;
}
if (c == 1) {
for (int i = level; i < row - level; i++) {
result.add(matrix[i][level]);
}
break;
}
for (int j = level; j < col - level - 1; j++) {
result.add(matrix[level][j]);
}
for (int i = level; i < row - level - 1; i++) {
result.add(matrix[i][col - level - 1]);
}
for (int j = col - level - 1; j > level; j--) {
result.add(matrix[row - level - 1][j]);
}
for (int i = row - level - 1; i > level; i--) {
result.add(matrix[i][level]);
}
c -= 2;
r -= 2;
level++;
}
return result;
}
}
Spiral Matrix
最新推荐文章于 2024-01-15 18:28:38 发布