zoukankan      html  css  js  c++  java
  • LintCode-381.螺旋矩阵 II

    螺旋矩阵 II

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

    样例

    n = 3
    矩阵为
    [
        [ 1, 2, 3 ],
        [ 8, 9, 4 ],
        [ 7, 6, 5 ]
    ]

    标签

    数组

    code

    class Solution {
    public:
        /**
         * @param n an integer
         * @return a square matrix
         */
        vector<vector<int>> generateMatrix(int n) {
            // Write your code here
            if(n <= 0 ) {
                vector<vector<int> > matrix;
                return matrix;
            }
    
            vector<int> line(n);
            vector<vector<int> > matrix(n, line);
            int i,j,inc=1;
            int cirCount = (n+1)/2;
    
            //  第i圈
            for(i=0; i<cirCount; i++) {
                //  从左至右
                for(j=i; j<n-i-1;j++) {
                    matrix[i][j] = inc++;
                }
                //  从上至下
                for(j=i; j<n-i-1;j++)  {
                    matrix[j][n-i-1] = inc++;
                }
                //  从右至左
                for(j=i; j<n-i-1;j++) {
                    matrix[n-i-1][n-j-1] = inc++;
                }
                //  从下至上
                for(j=i; j<n-i-1;j++) {
                    matrix[n-j-1][i] = inc++;
                }
            }
            if(n%2 == 1)
                matrix[n/2][n/2] = inc;
    
            return matrix;
        }
    };
  • 相关阅读:
    Linux systemd & init.d
    windows 气泡提示
    C++17新特性
    Lua & C++
    C++智能指针原理
    C++ Memory Order
    析命令提示符的原理
    设置与获取系统代理信息
    命令查看系统信息
    Linux shell脚本
  • 原文地址:https://www.cnblogs.com/libaoquan/p/6807728.html
Copyright © 2011-2022 走看看