zoukankan      html  css  js  c++  java
  • 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 ]
    ]

    生成的过程为 (1) 横向生成 1,2
           (2) 纵向生成 3,4
           (3) 横向生成 5,6
           (4) 纵向生成 7,8
    (5) 生成 9
    public class Solution {
        public int[][] generateMatrix(int n) {
            if(n <= 0)
                return new int[0][];
            int[][] matrix = new int[n][n];
            printCircle(matrix, 0, n, 1);
            return matrix;
        }
        private void printCircle(int[][] matrix, int start, int end, int n)
        {
            if(start >= end)
                return;
            if(end - start == 1){
                matrix[start][start] = n;
                return;
            }
            for(int i = start; i < end - 1; i++)
            {
                matrix[start][i] = n;
                n++;
            }
            for(int i = start; i < end - 1; i++)
            {
                matrix[i][end - 1] = n;
                n++;
            }
            for(int i = end - 1; i > start; i--)
            {
                matrix[end - 1][i] = n;
                n++;
            }
            for(int i = end - 1; i > start; i--)
            {
                matrix[i][start] = n;
                n++;
            }
            printCircle(matrix, start+1, end-1, n);
        }
    }
  • 相关阅读:
    Linux常用命令
    git常用命令查询
    专有名词
    dos2unix 转换字符
    常见脚本语言
    使用shell脚本自动化部署rabbitmp
    通过脚本来执行ssh登录
    码率mbps
    centos7 firewall指定IP与端口访问(常用)
    ubuntu16.04离线安装docker记录
  • 原文地址:https://www.cnblogs.com/RazerLu/p/3557886.html
Copyright © 2011-2022 走看看