leetcode54-螺旋矩阵

embedded/2025/1/20 2:39:42/

leetcode 54
在这里插入图片描述

思路

本题和之前的leetcode 59题很相似,都是螺旋矩阵相关的题目,只不过之前的题目是正方形矩阵,本题是长方形矩阵
都是通过四层循环来模拟顺时针螺旋的方向,分别是从右到左,从上到下,从左到右,从下到上,我们首先获取到上下左右边界,每次一个方向循环完成后都更新相对应的边界,缩减螺旋范围

实现

var spiralOrder = function (matrix) {let left = 0, right = matrix[0].length - 1;let top = 0, bottom = matrix.length - 1;let nums = [];while (left <= right && top <= bottom) {// 从左向右for (let i = left; i <= right; i++) {nums.push(matrix[top][i])}// 上边界下移top++;// 从上往下for (let i = top; i <= bottom; i++) {nums.push(matrix[i][right])}// 右边界收缩right--;if (top <= bottom) {// 从右向左for (let i = right; i >= left; i--) {nums.push(matrix[bottom][i])}bottom--}if (left <= right) {// 从下往上for (let i = bottom; i >= top; i--) {nums.push(matrix[i][left])}left++}}return nums;
};

http://www.ppmy.cn/embedded/155360.html

相关文章

从零开始,掌握Django Web开发

1. Django简介 Django是一个强大的Python Web框架,它使开发人员能够快速构建安全、可扩展的Web应用程序。让我们深入了解Django的特性和优势。 1.1 什么是Django? Django是一个高级Python Web框架,于2005年首次发布。它由新闻网站的开发人员创建,旨在处理快节奏的新闻编辑室…

定时任务特辑 Quartz、xxl-job、elastic-job、Cron四个定时任务框架对比,和Spring Boot集成实战

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

Azure 100 学生订阅下,使用 Docker 在 Ubuntu VPS 上部署 Misskey 的详细教程

什么是 Docker 和 Misskey&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;包括物理机、虚拟机、云服务等。使用 Docker&#xff0c…

试题转excel;word转excel;大风车excel(1.1更新)

更新了大风车excel1.1版本 主要优化在算法层面&#xff1a; 1.0版本试题解析的成功率为95%&#xff0c;现在1.1版本已经优化到解析成功率为99% 一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道题几…

Trie(算法版)

#include <iostream>using namespace std;const int N100010; int son[N][26],cnt[N],idx; //son记录trie数&#xff0c;cnt记录每个词出现的次数&#xff0c;idx记录每个字符所占⽤的下标//加入字符串 void add(char str[]){//idx 0既表⽰根节点也表⽰空节点int p 0;fo…

智能问答系统中,思维链使用什么技术实现

智能问答系统中,思维链使用什么技术实现 目录 智能问答系统中,思维链使用什么技术实现基于规则的方法 技术原理:这种方法是通过预先定义一系列的规则和模板来构建思维链。开发者根据问题类型和领域知识,手动设计推理步骤的规则。例如,在数学运算问题中,规定先识别运算类型…

如何在idea中搭建SpringBoot项目

如何在idea中快速搭建SpringBoot项目 目录 如何在idea中快速搭建SpringBoot项目前言一、环境准备&#xff1a;搭建前的精心布局 1.下载jdk &#xff08;1&#xff09;安装JDK&#xff1a;&#xff08;2&#xff09;运行安装程序&#xff1a;&#xff08;3&#xff09;设置安装…

【C++笔记】红黑树

前言 各位读者朋友们大家好&#xff01;上期我们讲了二叉搜索树之一——AVL树&#xff0c;这一期我们继续讲解另一种二叉搜索树——红黑树。 目录 前言一. 红黑树的概念1.1 红黑树的规则1.2 红黑树如何确保最长路径不超过最短路径的两倍1.3 红黑树的效率 二. 红黑树的实现2.1…