剑指offer--29顺时针打印矩阵

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer--29顺时针打印矩阵相关的知识,希望对你有一定的参考价值。

剑指offer--29顺时针打印矩阵

题目

在这里插入图片描述

代码

public class Solution {
    public int[] spiralOrder(int[][] matrix) {
        int row = matrix.length;
        if (row == 0) return new int[0];
        int col = matrix[0].length;
        int[] res = new int[row * col];
        int idx = 0;
        int left = 0, top = 0, right = col - 1, bottom = row - 1;
        while (true) {
            //从左往右走,自增符号在前意思是先自增运算
            for (int i = left; i <= right; i++) {res[idx++] = matrix[top][i];}
            if (++top > bottom) break;
            //从上往下走
            for (int i = top; i <= bottom; i++) {res[idx++] = matrix[i][right];}
            if (--right < left) break;
            //从右往左走
            for (int i = right; i >= left; i--) { res[idx++] = matrix[bottom][i];}
            if (--bottom < top) break;
            //从下往上走
            for (int i = bottom; i >= top; i--) { res[idx++] = matrix[i][left]; }
            if (++left > right) break;
        }
        return res;
    }
}

结果

在这里插入图片描述

以上是关于剑指offer--29顺时针打印矩阵的主要内容,如果未能解决你的问题,请参考以下文章

Java 剑指offer(29) 顺时针打印矩阵

完整可运行代码剑指 Offer 29. 顺时针打印矩阵

完整可运行代码剑指 Offer 29. 顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵

剑指Offer打卡29.顺时针打印矩阵

剑指Offer打卡29.顺时针打印矩阵