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

相关推荐
haoly198918 分钟前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
記億揺晃着的那天2 小时前
Vue + Element UI 表格自适应高度如何做?
javascript·vue.js·ui
GISer_Jing3 小时前
ByteDance——jy真题
前端·javascript·面试
真的想不出名儿3 小时前
Vue 中 props 传递数据的坑
前端·javascript·vue.js
阳光阴郁大boy3 小时前
星座运势网站技术解析:从零打造现代化Web应用
前端·javascript
学Linux的语莫4 小时前
机器学习数据处理
java·算法·机器学习
sorryhc4 小时前
如何设计一个架构良好的前端请求库?
前端·javascript·架构
Queen_sy4 小时前
vue3 el-date-picker 日期选择器校验规则-选择日期范围不能超过七天
javascript·vue.js·elementui
lvchaoq4 小时前
react 修复403页面无法在首页跳转问题
前端·javascript·react.js
earthzhang20214 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程