zoukankan      html  css  js  c++  java
  • 螺旋矩阵 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;
        }
    }
  • 相关阅读:
    Study Plan The Twelfth Day
    Study Plan The Fifteenth Day
    Study Plan The Seventeenth Day
    Study Plan The Tenth Day
    Study Plan The Eighth Day
    Study Plan The Eleventh Day
    Study Plan The Sixteenth Day
    Study Plan The Thirteenth Day
    Study Plan The Fourteenth Day
    Study Plan The Ninth Day
  • 原文地址:https://www.cnblogs.com/tobemaster/p/7863221.html
Copyright © 2011-2022 走看看