其实只要模板掌握了,那就不难,关键点:
- 会求m和n
- 另外就是知道返回类型是什么,ArrayList的基础用法
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
int up = 0;
int down = m-1;
int left = 0;
int right = n-1;
ArrayList<Integer> result = new ArrayList<>();
while(true){
for(int i = left; i <= right;i++){
result.add(matrix[up][i]);
}
if(++up > down) break;
for(int i = up; i <= down;i++){
result.add(matrix[i][right]);
}
if(--right < left) break;
for(int i = right; i >= left;i--){
result.add(matrix[down][i]);
}
if(--down < up) break;
for(int i = down; i >= up;i--){
result.add(matrix[i][left]);
}
if(++left > right) break;
}
return result;
}
}