zoukankan      html  css  js  c++  java
  • [leetcode]59. Spiral Matrix II螺旋遍历矩阵2

    Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order.

    Example:

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

    题意:

    给定n, 把1至n ^ 2所有的数,按照螺旋顺序填入方阵。

    code

     1 /*
     2 Time: O(n^2)
     3 Space: O(n^2)
     4 */
     5 class Solution {
     6     public int[][] generateMatrix(int n) {
     7         int[][] matrix = new int[n][n];
     8         if (n == 0) return matrix;
     9         int beginX = 0, endX = n - 1;
    10         int beginY = 0, endY = n - 1;
    11         int num = 1;
    12         while (true) {
    13             for (int j = beginX; j <= endX; ++j) matrix[beginY][j] = num++;
    14             if (++beginY > endY) break;
    15 
    16             for (int i = beginY; i <= endY; ++i) matrix[i][endX] = num++;
    17             if (beginX > --endX) break;
    18 
    19             for (int j = endX; j >= beginX; --j) matrix[endY][j] = num++;
    20             if (beginY > --endY) break;
    21 
    22             for (int i = endY; i >= beginY; --i) matrix[i][beginX] = num++;
    23             if (++beginX > endX) break;
    24         }
    25         return matrix;
    26     }
    27 }
  • 相关阅读:
    vue中height设置为100%却无法铺满整个页面
    cpp快速上手
    CSP_2020061_线性分类器
    cpp快速上手
    算法笔记
    cpp中set的使用
    cpp中vector的使用
    常用命令
    常用git命令
    Linux使用docker安装fastfs
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9808268.html
Copyright © 2011-2022 走看看