题解 | #顺时针打印矩阵#

顺时针打印矩阵

https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
       ArrayList<Integer> res = new ArrayList<>();
       if(matrix == null || matrix.length == 0 || matrix[0].length == 0){
            return res;
        }
        int rows = matrix.length-1;
        int column = matrix[0].length-1;
        int left = 0;
        int right = 0;
        int up = 0;
        int down = 0;
        for (int i = 0;;i++) {
            right = column-i;
            left = i;
            up = i;
            down = rows-i;
            if (left>right||up>down||right<0||down<0) {
                break;
            }
            //左往右
            for (int j = left; j <= right; j++) {
                res.add(matrix[up][j]);
            }

            //上往下
            for (int j = up+1; j <= down; j++) {
                res.add(matrix[j][right]);
            }

            //右往左, 必须加上 上小于下
            for (int j = right-1; j>=left&&up<down; j--) {
                res.add(matrix[down][j]);
            }

            //下往上,必须加上左小于右
            for (int j = down-1; j > up&&left<right; j--) {
                res.add(matrix[j][left]);
            }

            

        }
        return res;
    }
}

全部评论

相关推荐

02-24 17:39
门头沟学院 Java
神哥不得了:神哥来啦~专业技能的话建议不要前面空那么多,八股的话建议先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股。项目的话,建议换两个高质量的项目上去
点赞 评论 收藏
分享
03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务