zoukankan      html  css  js  c++  java
  • 第59题:螺旋矩阵 II

    一. 问题描述

    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

    示例:

    输入: 3

    输出:

    [

     [ 1, 2, 3 ],

     [ 8, 9, 4 ],

     [ 7, 6, 5 ]

    ]

    二. 解题思路

    按照模拟往矩阵内填数依次填写

     * 步骤一:将数组依次填入到rf行中lf~ll列中,rf=rf+1,判断数组填完;

     * 步骤二:将数组依次填入到ll列的rf~rl行中,ll=ll-1,判断数组填完;

     * 步骤三:将数组依次填入到rl行中ll~lf列中,rl=rl-1,判断数组填完;

     * 步骤四:将数组依次填入到lf列的rl~rf行中,lf=lf+1,判断数组填完;

     * 第五步:重复步骤一

    三. Java代码

    class Solution {
       
         public int[][] generateMatrix(int n) {
                int rf=0,rl=n-1;     //表示行的标记
                int lf=0,ll=n-1;     //表示列的标记    
                int number=1;
                int[][] arr=new int[n][n];
                
                while(true)
                {
                   for(int i=lf;i<=ll&&number<=(n*n);i++)
                   {
                       arr[rf][i]=number;
                       number++;
                   }
                   rf=rf+1;
                   
                   for(int i=rf;i<=rl&&number<=(n*n);i++)
                   {
                       arr[i][ll]=number;
                       number++;
                   }
                   ll=ll-1;
                   
                   for(int i=ll;i>=lf&&number<=(n*n);i--)
                   {
                       arr[rl][i]=number;
                       number++;
                   }
                   rl=rl-1;
                   
                   for(int i=rl;i>=rf&&number<=(n*n);i--)
                   {
                       arr[i][lf]=number;
                       number++;                   
                   }
                   lf=lf+1;
                   
                   if(number>(n*n))
                   {
                       break;
                   }                
                }
                
                return arr;
            }
    }
  • 相关阅读:
    个人总结11
    进度条4,5
    对vivo自带输入法的评价
    个人总结10
    hdu5589Tree
    HDU5213 Lucky
    2018icpcShenYangE
    bzoj3683: Falsita
    cf396C. On Changing Tree
    cf600E. Lomsat gelral
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11646342.html
Copyright © 2011-2022 走看看