[54] 螺旋矩阵 js

题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

* 输出:[1,2,3,6,9,8,7,4,5]

解题思路:

按照顺时针一行一列,往里收缩

解法一:

javascript 复制代码
function spiralOrder(matrix) {
    let left = 0;
    let right = matrix[0].length - 1;
    let top = 0;
    let bottom = matrix.length - 1 ;
    let res = [];


   // 按照顺时针进行输出,规定好收缩边界
    while (left <= right && top <= bottom) {
        // 第一行
        for (let i = left; i <= right; i++) {
            res.push(matrix[top][i]);
        };
        top++;
        // 最后一列
        for (let i = top; i <= bottom; i++) {
            res.push(matrix[i][right]);
        };
        right--;
        // 最后一行

        if (top <= bottom && left <= right) {
            for (let i = right; i >= left; i--) {
                res.push(matrix[bottom][i]);
            }
            bottom--;

            // 第一列
            for (let i = bottom; i >= top; i--) {
                res.push(matrix[i][left]);
            }
            left++;
        }
        
    }
    return res;

    
};

用时:

// Your runtime beats 30.54 % of typescript submissions

// Your memory usage beats 84.1 % of typescript submissions (42.1 MB)

相关推荐
San305 分钟前
深入理解JavaScript执行机制:从变量提升到内存管理
javascript·编程语言·代码规范
用户12039112947267 分钟前
深入理解JavaScript执行机制:从变量提升到调用栈全解析
javascript
墨染点香7 分钟前
LeetCode 刷题【146. LRU 缓存】
leetcode·缓存·哈希算法
快手技术8 分钟前
从“拦路虎”到“修路工”:基于AhaEdit的广告素材修复
前端·算法·架构
qk学算法9 分钟前
力扣滑动窗口题目-76最小覆盖子串&&1234替换子串得到平衡字符串
数据结构·算法·leetcode
小欣加油10 分钟前
leetcode 860 柠檬水找零
c++·算法·leetcode·职场和发展·贪心算法
weixin_4386943917 分钟前
pnpm 安装依赖后 仍然启动报的问题
开发语言·前端·javascript·经验分享
还是码字踏实19 分钟前
基础数据结构之数组的矩阵遍历:螺旋矩阵(LeetCode 54 中等题)
数据结构·leetcode·矩阵·螺旋矩阵
西西弗Sisyphus39 分钟前
线性代数 - 奇异值分解(SVD Singular Value Decomposition)- 计算顺序 旋转→拉伸→旋转
线性代数·矩阵·奇异值分解·矩阵求逆
唯道行40 分钟前
计算机图形学·9 几何学
人工智能·线性代数·计算机视觉·矩阵·几何学·计算机图形学