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

顺时针打印矩阵

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;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 12:10
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务