Numa pequena aldeia perto de uma floresta antiga, havia a lenda de um tesouro escondido, enterrado bem no fundo da mata. Apesar das inúmeras tentativas, ninguém tinha conseguido encontrá-lo. Mas isso estava prestes a mudar, graças a uma jovem exploradora chamada Elara. Tinha descoberto um documento antigo com instruções sobre como localizar o tesouro. Com essas instruções, Elara conseguiu desenhar um mapa que revelava o caminho até ao tesouro.
Para sua surpresa, o caminho seguia uma estranha espiral no sentido dos ponteiros do relógio. Não admira que ninguém tivesse conseguido encontrar o tesouro antes! Com o mapa na mão, Elara parte à descoberta do tesouro escondido.
A tua tarefa é devolver uma matriz quadrada de um determinado tamanho.
A matriz deve ser preenchida com números naturais, começando em 1 no canto superior esquerdo e aumentando em espiral para dentro, no sentido dos ponteiros do relógio, como nos exemplos seguintes:
1 2 3
8 9 4
7 6 5
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
A saída é esperada como um array plano de números u16; será desserializado no array quadrado de arrays exigido:
// output
[1,2,3,8,9,4,7,6,5]
// =>
// [[1, 2, 3],
// [8, 9, 4],
// [7, 6, 5]]
Inscreve-te no Exercism para aprenderes e dominares WebAssembly com 87 exercícios, e mentoria humana real, tudo grátis.