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

顺时针打印矩阵

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

一开始怎么也想不明白为啥要再每个for循环下面加if判断,不加的话这个例子[[1,2,3,4]]会输出1234321。

import java.util.*;
import java.util.ArrayList;
public class Solution {
    public static ArrayList<Integer> printMatrix(int[][] matrix) {
        ArrayList<Integer> res = new ArrayList();
        if (matrix.length == 0) return null;
        int up = 0;
        int down = matrix.length - 1;
        int left = 0;
        int right = matrix[0].length - 1;
        while (left <= right && up <= down) {
            for (int i = left; i <= right; i++){
                res.add(matrix[up][i]);
            }
            up++;
            if(up > down)break;
            for (int i = up; i <=down; i++){
                res.add(matrix[i][right]);
            }
            right--;
            if(left > right)break;
            for (int i = right; i >=left;i--){
                res.add(matrix[down][i]);
            }
            down--;
            if(up > down)break;
            for (int i = down; i >=up; i--){
                res.add(matrix[i][left]);
            }
            left++;
            if(left > right)break;
        }
        return res;
    }
}

全部评论

相关推荐

本人一直追求WLB,对大小周深恶痛疾,刷到小红书说取消大小周大喜,看来跳槽的选择又多一个了
一枚大铁锤:至于冲不冲小红书,这是个问题,我先声明我不是这方面的专家,我觉得这件事还是要慎重评论,你问我为什么不给出回答,因为我一开始就说了,我不是这方面的专家
点赞 评论 收藏
分享
bg&nbsp;为&nbsp;985&nbsp;本应届生,方向是嵌入式软件。纠结了很久,两边都不太了解,恳请各位大佬帮选,非常感谢🙏。
ResourceUtilization:求稳海能达,趁着年轻赚它一笔就relink吧,有个疑惑,怎么睿连同岗位多这么多base原因吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务