zoukankan      html  css  js  c++  java
  • [leetcode]Spiral Matrix II

    Spiral Matrix II

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

    For example,
    Given n = 3,

    You should return the following matrix:

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

    算法思路:

    在n*n矩阵中,循环打印1 ~ n^2数字,一圈一圈处理即可,很容易

    【注意】:当n为奇数时,最中间的一个数字的处理,我的解法,当n为奇数时,最中间的数字是无法打印的,因此需要特殊处理。

    代码如下:

     1 public class Solution {
     2     public int[][] generateMatrix(int n) {
     3         if(n <= 0) return new int[0][0];
     4         int[][] res = new int[n][n];
     5         int index = 1;
     6         for(int i = 0; i < n >> 1; i++){
     7             for(int j = i ; j < n - i; j++){
     8                 res[i][j] = index++;
     9             }
    10             for(int j = i + 1; j < n - i; j++){
    11                 res[j][n - 1 - i] = index++;
    12             }
    13             for(int j = n - i - 2; j >= i; j--){
    14                 res[n - 1 - i][j] = index++;
    15             }
    16             for(int j = n - i - 2; j > i; j-- ){
    17                 res[j][i] = index++;
    18             }
    19         }
    20         if(n % 2 == 1) res[n >> 1][n >> 1] = index;
    21         return res;
    22     }
    23 }




  • 相关阅读:
    闭包 与 装饰器
    Linux常用命令 (二)
    day1 linux常用命令(一)
    📎 .xib
    📎 Emoji 前端转换
    📎 钉钉微应用( 新启项目Weex H5 )
    📎 ROR:常用GEM
    📎 AndroidNative【ING...】
    🆕 ror方法
    安装centos7
  • 原文地址:https://www.cnblogs.com/huntfor/p/3914881.html
Copyright © 2011-2022 走看看