public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> res = new ArrayList<>();
int m = matrix.length;
int n = matrix[0].length;
int top=0,down=m-1;
int left=0,right=n-1;
while(top<=down && left<=right){
for(int j=left;j<=right;j++){
res.add(matrix[top][j]);
}
top++;
for(int i=top;i<=down;i++){
res.add(matrix[i][right]);
}
right--;
if(top<=down){ // 经过前面的 top++ 后,top 有可能大于 down,此时是没有意义的
for(int j=right;j>=left;j--){
res.add(matrix[down][j]);
}
down--;
}
if(left<=right){ // 经过前面的 right-- 后,right 有可能小于 left,此时是没有意义的
for(int i=down;i>=top;i--){
res.add(matrix[i][left]);
}
left++;
}
}
return res;
}
https://www.mianshi.online,https://www.i9code.cn
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。