力扣刷题日记-59-螺旋矩阵II

62 阅读1分钟
  • 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix
/**
 * @param {number} n
 * @return {number[][]}
 */
var generateMatrix = function(n) {
    let k = 1,res = [], u = 0, d = n - 1, l = 0, r = n - 1
    for(let i = 0; i < n;i++) {
        res[i] = []
    }
    while(k <= n * n) {
        for(let j = l; j <= r; j++) {
            res[u][j] = k++
        }
        u++
        for(let j = u; j <= d;j++) {
            res[j][r] = k++
        }
        r--
        for(let j = r;j>=l;j--) {
            res[d][j] = k++
        }
        d--
        for(let j = d;j >= u; j--) {
            res[j][l] = k++
        }
        l++
    }
    return res
};