[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)

相关推荐
代码AI弗森13 小时前
从 IDE 到 CLI:AI 编程代理工具全景与落地指南(附对比矩阵与脚本化示例)
ide·人工智能·矩阵
Greedy Alg17 小时前
LeetCode 142. 环形链表 II
算法
睡不醒的kun17 小时前
leetcode算法刷题的第三十二天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
先做个垃圾出来………18 小时前
残差连接的概念与作用
人工智能·算法·机器学习·语言模型·自然语言处理
雾恋19 小时前
最近一年的感悟
前端·javascript·程序员
华仔啊19 小时前
Vue3 的 ref 和 reactive 到底用哪个?90% 的开发者都选错了
javascript·vue.js
SuperCandyXu19 小时前
P3205 [HNOI2010] 合唱队-普及+/提高
c++·算法·洛谷
A黄俊辉A19 小时前
axios+ts封装
开发语言·前端·javascript
_OP_CHEN19 小时前
数据结构(C语言篇):(十二)实现顺序结构二叉树——堆
c语言·数据结构·算法·二叉树·学习笔记··顺序结构二叉树
小李小李不讲道理20 小时前
「Ant Design 组件库探索」四:Input组件
前端·javascript·react.js