题目来源leetcode
【资料图】
leetcode地址:59.螺旋矩阵II,难度:中等。
题目描述(摘自leetcode):
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]]示例2:输入:n=1输出:[[1]]提示:1<=n<=20
本地调试代码:
classSolution{//业务代码publicint[][]generateMatrix(intn){...}publicstaticvoidmain(String[]args){intn=4;//设置边长度printMatrix(n);}publicstaticvoidprintMatrix(intn){Solutionsolution=newSolution;intm=n*n;intnumLen=0;while(m>0){m=m/10;numLen++;}numLen+=2;//每个数字之间空两个int[][]ints=solution.generateMatrix(n);for(inti=0;i
题解
这是一道逻辑题,花费了我一个多小时解出来,关键就是需要你找到其中的规律!
思路:
刚开始实在没有头绪,就去看了大佬的一个题解思路,看到下面这张图之后就开始撸代码了,我觉得最核心的就是下面这个图,其他主要就是你要找一些规律,例如有边长n对应有多少圈;在哪一圈上下左右每次需要填充的数量;最里边填充一个数字的情况…
图片取自:代码随想录—螺旋矩阵
代码:
publicint[][]generateMatrix(intn){int[][]matrixArr=newint[n][n];if(n==1){matrixArr[0][0]=1;returnmatrixArr;}//填充的数intnum=1;//圈数intoutCircleNums=n%2==1?n/2+1:n/2;//每层(上下左右)要填充的对应数量。例如上图3*3,上下左右方向都要填充2个intcurTire=0;//圈数遍历for(inti=0;i
本地调试效果图:
关键词: 没有头绪