《剑指offer》—— 19. 顺时针打印矩阵(Java)

    技术2022-07-10  90

    题目描述

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

    import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { } }

    参考思路:

    控制好边界和结束条件,按顺时针遍历数组并存储即可。

    参考实现:

    import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] matrix) { ArrayList<Integer> list = new ArrayList<>(); int up = 0; int down = matrix.length-1; int left = 0; int right = matrix[0].length-1; while (true){ //上 for(int col=left; col<=right; col++){ list.add(matrix[up][col]); } //向下靠近 up++; //判断是否越界 if (up > down){ break; } //右 for(int row=up; row<=down;row++){ list.add(matrix[row][right]); } //向左靠近 right--; if (right < left){ break; } for(int col=right;col>=left;col--){ list.add(matrix[down][col]); } down--; if(down < up){ break; } for(int row=down; row>=up; row--){ list.add(matrix[row][left]); } left++; if(left > right){ break; } } return list; } }

    看完之后,如果还有什么不懂的,可以在评论区留言,会及时回答更新。

    点个关注,不再迷路

    这里是猿兄,为你分享程序员的世界。

    非常感谢各位大佬们能看到这里,如果觉得文章还不错的话, 求点赞👍 求关注💗 求分享👬求评论📝 这些对猿兄来说真的 非常有用!!!

    注: 如果猿兄这篇博客有任何错误和建议,欢迎大家留言,不胜感激!

    Processed: 0.009, SQL: 9