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

    题目

    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 ]
    ]
    

    题解

    这道题跟Spiral Matrix想法也是类似的,就是依照矩阵从外圈到内圈建立。
    要考虑如果是奇数行列的话,最中心的那个点要单加。

    代码如下:
     1     public int[][] generateMatrix(int n) {
     2         int[][] res = new int[n][n];
     3         int k = 1;
     4         int top = 0, bottom = n - 1, left = 0, right = n - 1;
     5         while (left < right && top < bottom) {
     6             for (int j = left; j < right; j++) {
     7                 res[top][j] = k++;
     8             }
     9             for (int i = top; i < bottom; i++) {
    10                 res[i][right] = k++;
    11             }
    12             for (int j = right; j > left; j--) {
    13                 res[bottom][j] = k++;
    14             }
    15             for (int i = bottom; i > top; i--) {
    16                 res[i][left] = k++;
    17             }
    18             left++;
    19             right--;
    20             top++;
    21             bottom--;
    22         }
    23         if (n % 2 != 0)
    24             res[n / 2][n / 2] = k;
    25         return res;
    26     }

    Reference:leetcodenotes.wordpress.com/2013/11/23/leetcode-spiral-matrix-%E6%8A%8A%E4%B8%80%E4%B8%AA2d-matrix%E7%94%A8%E8%9E%BA%E6%97%8B%E6%96%B9%E5%BC%8F%E6%89%93%E5%8D%B0/

  • 相关阅读:
    给xpath添加正则表达式匹配函数
    利用window.open实现post方式的参数传递
    利用Http状态码检查网页内容是否更新
    一款很不错的html转xml工具Html Agility Pack
    ASP.NET MVC SiteMap provider的一个bug
    a标记链接相对路径的问题
    下载文件的Restful接口的前端实现
    游戏服务器体系结构
    c++资源之不完全导引 (收藏)
    Apache学习路线
  • 原文地址:https://www.cnblogs.com/springfor/p/3887900.html
Copyright © 2011-2022 走看看