### Problem

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

### Example

Given n = 4,

[

[1, 2, 3, 4],

[12, 13, 14, 5],

[11, 16, 15, 6],

[10, 9, 8, 7]

]

### JavaScript Code

function generateMatrix(n) { var total = n*n; var result= []; for(var i=0;i<n;i++) { var rs = []; for(var j=0;j<n;j++) { rs.push(0); } result.push(rs); } var x=0; var y=0; var step = 0; for(var i=0;i<total;){ while(y+step<n){ i++; result[x][y]=i; y++; } y--; x++; while(x+step<n){ i++; result[x][y]=i; x++; } x--; y--; while(y>=step){ i++; result[x][y]=i; y--; } y++; x--; step++; while(x>=step){ i++; result[x][y]=i; x--; } x++; y++; } return result; }

Hello, could I possibly use this code for my arts project? Thanks

ReplyDelete