js实现螺旋矩阵算法

Q:用0-9填充一个N*N的矩阵,该矩阵按顺时针旋转方向依次增大,用js编程输出这个数组。要求如下:

我的思路是把矩形数组从外到里分为几个环型数组,然后用这些环型数组给二维数组赋值,如图所示:

部分代码如下:

function circleNum(n){
    var loop = Math.round(n/2);
    var index = 0;
    for(var j=0;j

输出的两个环型数组如下:

具体怎么把这些环型数组输出矩阵,这些工作还没完成,最近实在是有点困了,明天再补上。

PS:个人觉得这个思路不是最优解,各位路过的高手如果有更好思路,望不吝赐教。


最近偷懒了,补上完整代码,不过忘了限制数字是0到9,稍微修改一下代码即可。

请输入代码const array = new Array();
let count = -1;
function produceArray(n,start){
if(count==-1){
    count = n;
}

if(start==0){
    for(let i=0;icount-n;i--){    
      array[i][n-1] = increaseNum++;
  }
  for(let i=n-1;i>count-n;i--){
      array[count-n][i] = increaseNum++;
  }
  
  
  produceArray(n-1,increaseNum)
}

produceArray(n,0); //此处可给n赋值即可,比如生成5*5矩阵,n就等于5
for(let i=0;i

你可能感兴趣的:(javascript)