• 螺旋矩阵 II


    给你一个数n生成一个包含1-n^2的螺旋形矩阵

    样例

    n = 3
    矩阵为

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

    完全是一道数学的归纳题

    public class Solution {
        /*
         * @param n: An integer
         * @return: a square matrix
         */
        public int[][] generateMatrix(int n) {
            // write your code here
            //第layer层 从左上到右上 ans[layer-1][layer-1]到ans[layer-1][n-1-layer+1-1]//第layer层 从右上到右下 ans[layer-1][n-1-layer+1] 到 ans[n-1-layer+1-1][n-1-layer+1]
            //第layer层 从右下到左下ans[n-1-layer+1][n-1-layer+1]到 ans[n-1-layer+1][layer]
            //第layer层 从左下到左上从 ans[n-1-layer+1][layer-1] 到 ans[layer][layer-1]
            int[][] ans = new int[n][n];
            int tempn = 1;
            for(int layer = 1;layer<=(n+1)/2;layer++){
                for(int i = layer-1;i<=n-1-layer+1-1;i++){
                    ans[layer-1][i] = tempn++;
                }
                for(int i = layer-1;i<=n-1-layer+1-1;i++){
                    ans[i][n-1-layer+1] = tempn++;
                }
                for(int i = n-1-layer+1;i>=layer; i--){
                    ans[n-1-layer+1][i] = tempn++;
                }
                for(int i = n-1-layer+1;i>=layer; i--){
                    ans[i][layer-1] = tempn++;
                }
            }
            if(n%2 == 1){
                ans[(n-1)/2][(n-1)/2] = n*n;   
            }
            return ans;
        }
    }
  • 相关阅读:
    处理excel表
    生成登陆验证码
    IKAnalyzer分词例子
    JAVA中不用+ 如何实现加法
    开发者应该掌握的Java代码优化技能
    Spring Boot Maven插件
    23种设计模式(1)-单例模式
    Spring AOP 创建切面
    Spring AOP 创建增强类
    Spring AOP基础知识
  • 原文地址:https://www.cnblogs.com/tobemaster/p/7863221.html
Copyright © 2020-2023  润新知