首页 > 其他分享 >力扣--59.螺旋矩阵II

力扣--59.螺旋矩阵II

时间:2024-08-02 19:29:39浏览次数:6  
标签:59 matrix -- 矩阵 II ++ let left

 

 

模拟顺时针画矩阵的过程:

  • 填充上行从左到右
  • 填充右列从上到下
  • 填充下行从右到左
  • 填充左列从下到上

由外向内一圈一圈这么画下去

/**
 * 生成一个包含从1到n*n的数字的矩阵
 * @param {number} n - 矩阵的大小,为正整数
 * @return {number[][]} - 返回一个n x n的二维数组,数组中的每个元素为从1到n*n的递增数字
 */
var generateMatrix = function (n) {
let matrix = new Array(n);
    for (let i = 0; i < n; i++) {
        matrix[i] = new Array(n).fill(0);
    }

    let top = 0, bottom = n - 1, left = 0, right = n - 1;
    let direction = [[-1, 0], [0, 1], [1, 0], [0, -1]]; // 上、右、下、左四个方向
    let index = 0;

    while (top <= bottom && left <= right) {
        // 沿着当前方向遍历边界
        for (let i = left; i <= right; i++) {
            matrix[top][i] = ++index;
        }
        top++;

        for (let i = top; i <= bottom; i++) {
            matrix[i][right] = ++index;
        }
        right--;

        if (top <= bottom) {
            for (let i = right; i >= left; i--) {
                matrix[bottom][i] = ++index;
            }
            bottom--;
        }

        if (left <= right) {
            for (let i = bottom; i >= top; i--) {
                matrix[i][left] = ++index;
            }
            left++;
        }
    }

    return matrix;
};

 

标签:59,matrix,--,矩阵,II,++,let,left
From: https://www.cnblogs.com/zx618/p/18339449

相关文章

  • 轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置
    注:这是对我以前博客进行优化后再次发布的,博客中的截图为以前的。原博客已删除。如何安装nginxnginx是一款开源、高性能的Web和反向代理服务器,支持HTTP、HTTPS、SMTP、POP3和IMAP协议。由于其轻量级、资源占用少和强大的并发能力,nginx广泛用于多种场景。本文将介绍如何在CentOS和......
  • Linux安装Maven
    1、下载安装包,并上传到指定位置Maven官网: https://maven.apache.org/tar.gz下载地址:https://maven.apache.org/download.cgi2、解压安装包tar-zxvfapache-maven-3.9.8-bin.tar.gz3、配置环境变量vim/etc/profile#MAVEN配置exportMAVEN_HOME=/data/maven/apache-ma......
  • Linux 分区和格式化
    分区常用命令行工具:fdisk:适用于MBR分区表gdisk:适用于GPT分区表parted:适用于MBR和GPT分区表,功能更强大。现在基本都用GPT分区表了。列出所有物理磁盘及其分区表:sudoparted-l在上一步中选择你要进行分区操作的磁盘,例如/dev/sda,然后进入交互式分区编辑界面......
  • 小黑猫猫的周游记
    2024.07.13南宁今天,大猫咪收拾东西上来南宁找我会合,准备一起去北京。咱坐着K209次列车公交车到NND来接大猫。然后带他回了家。带大猫去领悟了周围的风景,还带了大猫去兜风。我:别急,我现在在坐K209次列车来见你大猫:?你这......
  • 常用快捷键集合
    常用VS运行调试程序快捷键编译.编译程序:Ctrl+F7运行.运行程序:Ctrl+F5打断点:F9启动调试并运行到断点位置:F5单步执行:F10单步进入函数:F11结束调试:Shift+F5清除项目中的所有断点CTRL+SHIFT+F9跳出执行当前执行点所处函数的剩余行 SHIFT+F11常用VS编辑程序......
  • c语言中的地址与指针的概念,及变量的指针和指向变量的指针变量
    C语言中的地址、指针、以及变量的指针与指向变量的指针变量。1.地址(Address)在C语言中,每个变量在内存中都有一个唯一的内存地址。这个地址是变量存储的位置的标识符。可以通过& 运算符来获取一个变量的地址。#include<stdio.h>intmain(){  intx=10;  ......
  • B端产品-运营
    1.B端顾名思义:ToBusiness对接企业、商家的系统或产品。用户群体比较确定,成本比较高,1.1B端和C端的区别B端C端市场注重市场、项目、销售部门建设;B端产品面向企业,购买链路可能很长,怎么吸引企业付费是重点注重品牌和产品自增长产品企业业务抽象化,提高企业工作业务效率(企业......
  • c语言结构体的概述,定义结构体变量类型的方法,结构体变量的引用,结构体变量的初始化,结构
    1.C语言结构体的概述在C语言中,结构体(struct)是一种复合数据类型,用于将不同类型的数据组合在一起。它可以包含基本数据类型(如int、float、char等)以及其他结构体。结构体非常适合表示具有多种属性的复杂数据,如学生信息(包含姓名、年龄、成绩等)或坐标点(包含x和y坐标)。结构......
  • Spark内存计算引擎原理与代码实例讲解
    Spark内存计算引擎原理与代码实例讲解关键词:Spark,内存计算,RDD,DAG,Shuffle,容错,分布式计算1.背景介绍1.1问题的由来随着大数据时代的到来,传统的基于磁盘的MapReduce计算框架已经无法满足实时计算、迭代计算等场景对计算性能的要求。Spark应运而生,其基于内......
  • 【Nuxt】服务端渲染 SSR
    SSR概述服务器端渲染全称是:ServerSideRender,在服务器端渲染页面,并将渲染好HTML返回给浏览器呈现。SSR应用的页面是在服务端渲染的,用户每请求一个SSR页面都会先在服务端进行渲染,然后将渲染好的页面,返回给浏览器呈现。构建SSR应用常见的库和框架有:VueNuxt,ReactNext......