【剑指offer】面试题29:顺时针打印矩阵(Java)
发布日期:2021-04-30 21:02:17 浏览次数:118 分类:精选文章

本文共 2123 字,大约阅读时间需要 7 分钟。

?????????????????

????????????????????????????????????????????????????????????????????????????????????

????

??1

?????

matrix = [[1,2,3],          [4,5,6],          [7,8,9]]

???

[1,2,3,6,9,8,7,4,5]

??2

?????

matrix = [[1,2,3,4],          [5,6,7,8],          [9,10,11,12]]

???

[1,2,3,4,8,12,11,10,9,5,6,7]

????

????????????????????????????????????????????????????????????????????????????

????

????????????????????

  • ???????????????????????????????????????????????????????
  • ?????????????????????????????????????????
    • ?????????????????????
    • ??????????????????????
    • ?????????????????????????????????????????
    • ???????????????????????????????????????????
  • ??????????????????????????????????????????
  • ????

    ????????????????Java??????????????????????????????????????

    public int[] spiralOrder(int[][] matrix) {    int m = matrix.length;    if (m == 0) {        return new int[0];    }    int n = matrix[0].length;    int[] nums = new int[m * n];    int count = 0;    int k = 0;    while (count < m * n) {        // ????????????        for (int i = k; i < matrix[0].length - k; i++) {            nums[count++] = matrix[k][i];        }        // ???????????        if (count < m * n) {            for (int i = k + 1; i < matrix.length - k; i++) {                nums[count++] = matrix[i][matrix[0].length - k - 1];            }        }        // ???????????        if (count < m * n) {            for (int i = matrix[0].length - k - 2; i >= k; i--) {                nums[count++] = matrix[matrix.length - k - 1][i];            }        }        // ???????????        if (count < m * n) {            for (int i = matrix.length - k - 2; i >= k; i--) {                nums[count++] = matrix[i][k];            }        }        k++;    }    return nums;}

    ????

  • ????????????????k???????????????????????????nums?????????
  • ??????while???????????????????for??????????????
  • ????????for????????????????
  • ????????for?????????????????
  • ????????for????????????????
  • ????????for?????????????????
  • ??????????????????count??????m * n????????????
  • ????????????????k??????????
  • ??

    ??????????????????????????????????????????????????????????????????????????????????????????

    上一篇:如何在Android-Studio下进行NDK开发,吐血整理
    下一篇:Leetcode--90. 子集Ⅱ

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2026年06月09日 16时39分39秒