题解 | #螺旋矩阵#

螺旋矩阵

https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

    public ArrayList<Integer> spiralOrder(int[][] matrix) {
        ArrayList<Integer> list = new ArrayList<>();
        //判断空
        if(matrix.length==0) return list;
        //设定四个边界,上下左右边界
        int top=0,bottom=matrix.length-1;
        int left=0,right=matrix[0].length-1;
    //四个循环搞定一圈,外层再次循环用来循环所有, //直到边界重合
        while(left<=right && top<= bottom){
            //上边界的从左到右
            for (int i = left; i <=right ; i++) {
                list.add(matrix[top][i]);
            }
            //上边界相应就往下一行,要判断上下边界是否相遇相交。
            top++;
            if(top>bottom) break;
            //右边界的从上到下
            for (int i = top; i <=bottom ; i++) {
                list.add(matrix[i][right]);
            }
            //上边界相应就往下一行,要判断上下边界是否相遇相交。
            right--;
            if(left>right) break;
            //下边界的从右到左
            for (int i = right; i >=left ; i--) {
                list.add(matrix[bottom][i]);
            }
            //下边界相应就往上一行,要判断上下边界是否相遇相交。
            bottom--;
            if(top>bottom) break;
            //左边界的从下到上
            for (int i = bottom; i >=top ; i--) {
                list.add(matrix[i][left]);
            }
            //左边界就相应往右一列,要判断左右边界是否相遇相交。
            left++;
            if(left>right)break;
        }
        return list;
    }

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
你找工作的时候用AI吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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