Given a matrix of m x n elements (m row
Example 1:
Input:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
Output: [1,2,3,6,9,8,7,4,5]
Example 2:
Input:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]
Output: [1,2,3,4,8,12,11,10,9,5,6,7]
Seen this question in a real interview before?
Difficulty:Medium
Total Accepted:167.1K
Total Submissions:594K
Contributor:LeetCode
Subscribe to see which companies asked this question.
Related Topics
Similar Questions
Spiral Matrix II
Java
1
class Solution {
2
public List<Integer> spiralOrder(int[][] matrix) {
3
if (matrix.length == 0) {
4
return new ArrayList<>();
5
}
6
List<Integer> arrays = new ArrayList<>();
7
for (int i = 0; i < matrix[0].length; i++) {
8
arrays.add(matrix[0][i]);
9
10
}
11
for (int i = 1; i < matrix.length; i++) {
12
arrays.add(matrix[i][matrix[i].length - 1]);
13
}
14
15
for (int i = matrix[0].length - 2; i >= 0 && matrix.length >= 2; i--) {
16
arrays.add(matrix[matrix.length - 1][i]);
17
}
18
for (int i = matrix.length - 2; i >= 1 && matrix[0].length > 1; i--) {
19
arrays.add(matrix[i][0]);
20
}
21
if (matrix.length - 2 <= 0) {
22
return arrays;
23
}
24
if (matrix[0].length == 0 || matrix[0].length - 2 <= 0) {
25
return arrays;
26
}
27
28
29
int[][] newArray = new int[matrix.length - 2][matrix[0].length - 2];
30
for (int i = 0; i < newArray.length; i++) {
31
System.arraycopy(matrix[i + 1], 1, newArray[i], 0, newArray[i].length);
32
}
33
List<Integer> integers = spiralOrder(newArray);
34
arrays.addAll(integers);
35
return arrays;
36
}
37
}
Custom Testcase( Contribute )
s, n columns), return all elements of the matrix in spiral order.