当前位置: 首页 > news >正文

怎么制作免费网站教程视频百度链接提交收录入口

怎么制作免费网站教程视频,百度链接提交收录入口,郑州网站建设 58,芜湖做网站题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入: n 3 输出: [[1,2,3],[8,9,4],[7,6,5]]示例 2: 输入&#xff1a…

题目描述

给你一个正整数 n ,生成一个包含 1n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix

示例 1:

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

示例 2:

输入: n = 1
输出: [[1]]

提示:

  • 1 <= n <= 20

分析解答

思路:

  • 初始化一个 n×n 的矩阵,用 0 填充表示未填充的位置。

  • 定义边界:topbottomleftright,分别代表当前矩阵的上、下、左、右边界。

  • 用一个变量 num 记录当前要填入的数字,从 1 开始。

  • 按照顺时针方向填充矩阵,具体顺序为:

    • 从左到右填充顶部行,然后将 top 边界向下移动。
    • 从上到下填充右侧列,然后将 right 边界向左移动。
    • 从右到左填充底部行,然后将 bottom 边界向上移动。
    • 从下到上填充左侧列,然后将 left 边界向右移动。
  • 重复上述步骤,直到填满所有位置。

/*** @param {number} n* @return {number[][]}*/
const generateMatrix = function(n) {const matrix = Array.from({ length: n }, () => Array(n).fill(0));let top = 0, bottom = n - 1;let left = 0, right = n - 1;let num = 1;while (num <= n * n) {// 从左到右填充for (let i = left; i <= right; i++) {matrix[top][i] = num++;}top++;// 从上到下填充for (let i = top; i <= bottom; i++) {matrix[i][right] = num++;}right--;// 从右到左填充if (top <= bottom) {for (let i = right; i >= left; i--) {matrix[bottom][i] = num++;}bottom--;}// 从下到上填充if (left <= right) {for (let i = bottom; i >= top; i--) {matrix[i][left] = num++;}left++;}}return matrix;
};

思路拓展

螺旋矩阵相关的问题,都可以通过一层一层遍历,通过一行一列、一行一列的顺序处理每个元素。

而且遍历过程中一定有一个规律,就是总有一个坐标是不变的,而另一个坐标在变。

解决螺旋矩阵题目时,可以总结出一些通用的解题方法和步骤。这些方法适用于填充矩阵或读取矩阵元素的螺旋顺序。

类似的题型见:螺旋矩阵

通用方法总结

  1. 定义边界变量

    • 使用 topbottomleftright 四个变量来表示当前矩阵的边界。
    • top 表示当前未填充区域的最上边行索引,bottom 表示最下边行索引。
    • left 表示未填充区域的最左边列索引,right 表示最右边列索引。
    • 这些边界变量随着螺旋填充或遍历逐渐收缩,直到遍历完成整个矩阵。
  2. 按照顺时针方向遍历或填充

    • 按照顺时针的顺序进行:从左到右(填充 top 行),从上到下(填充 right 列),从右到左(填充 bottom 行),从下到上(填充 left 列)。
    • 每次填充后,相应地缩小边界(如 top++bottom--left++right--)。
  3. 边界条件判断

    • 在每次填充新的行或列之前,判断当前的 top <= bottomleft <= right,确保当前边界仍然有效,防止重复填充或越界。
    • 这些判断可以避免在矩阵维度不对称时(如奇数维度矩阵)多次填充同一行或列。
  4. 循环控制条件

    • 通常使用一个 while 循环,当填充的数字还未达到矩阵总数 ( n^2 ) 时,继续循环。
    • 如果是读取矩阵中的元素,循环直到所有元素都遍历完。

解决螺旋矩阵问题的通用步骤

  1. 初始化矩阵和边界变量

    • 创建一个合适大小的矩阵,用来存放填充结果。
    • 初始化 topbottomleftright
  2. 进行螺旋顺序填充或读取

    • 按照顺时针顺序进行:从左到右,从上到下,从右到左,从下到上。
    • 每次填充或读取后,收缩相应的边界。
  3. 更新填充条件和检查边界

    • 进行边界检查,确保没有重复填充。
  4. 返回结果

    • 返回填充完的矩阵,或者返回读取顺序得到的结果。

注意事项

  • 边界条件的处理:确保在每次改变边界时进行有效的判断,避免多次填充同一行或列。
  • 初始化矩阵大小:根据题目的输入大小 ( n ) 确保矩阵初始化正确。
  • 边界收缩顺序:每次遍历结束后,适时更新 topbottomleftright 的值。

文章转载自:
http://sculpt.qkxt.cn
http://autocoding.qkxt.cn
http://imaginal.qkxt.cn
http://unreceipted.qkxt.cn
http://monosomic.qkxt.cn
http://brawl.qkxt.cn
http://soph.qkxt.cn
http://artisanry.qkxt.cn
http://nonsyllabic.qkxt.cn
http://mucinolytic.qkxt.cn
http://economical.qkxt.cn
http://heishe.qkxt.cn
http://triphyllous.qkxt.cn
http://iconomatic.qkxt.cn
http://orient.qkxt.cn
http://mormon.qkxt.cn
http://le.qkxt.cn
http://estella.qkxt.cn
http://advertizer.qkxt.cn
http://palpably.qkxt.cn
http://herdbook.qkxt.cn
http://hoard.qkxt.cn
http://podunk.qkxt.cn
http://mediator.qkxt.cn
http://litek.qkxt.cn
http://crenelle.qkxt.cn
http://seram.qkxt.cn
http://oncogenic.qkxt.cn
http://pipsissewa.qkxt.cn
http://hurt.qkxt.cn
http://bathymetrically.qkxt.cn
http://recoupment.qkxt.cn
http://gayety.qkxt.cn
http://clinton.qkxt.cn
http://swahili.qkxt.cn
http://whose.qkxt.cn
http://quadrasonic.qkxt.cn
http://furnishings.qkxt.cn
http://knapper.qkxt.cn
http://missend.qkxt.cn
http://clapometer.qkxt.cn
http://tassie.qkxt.cn
http://praties.qkxt.cn
http://zincaluminite.qkxt.cn
http://nosey.qkxt.cn
http://blend.qkxt.cn
http://attacker.qkxt.cn
http://umbles.qkxt.cn
http://schussboomer.qkxt.cn
http://keratinize.qkxt.cn
http://depasturage.qkxt.cn
http://wheelbarrow.qkxt.cn
http://radiosensitive.qkxt.cn
http://crossing.qkxt.cn
http://acrita.qkxt.cn
http://heinous.qkxt.cn
http://doughfoot.qkxt.cn
http://miry.qkxt.cn
http://platinocyanic.qkxt.cn
http://workmanship.qkxt.cn
http://feirie.qkxt.cn
http://zootheism.qkxt.cn
http://consentience.qkxt.cn
http://armill.qkxt.cn
http://parturition.qkxt.cn
http://wheelset.qkxt.cn
http://babyism.qkxt.cn
http://embrave.qkxt.cn
http://oafish.qkxt.cn
http://cotopaxi.qkxt.cn
http://inductile.qkxt.cn
http://carnet.qkxt.cn
http://adze.qkxt.cn
http://unburned.qkxt.cn
http://fundamentalist.qkxt.cn
http://comp.qkxt.cn
http://resonator.qkxt.cn
http://anlage.qkxt.cn
http://unpolluted.qkxt.cn
http://antistrophe.qkxt.cn
http://ambush.qkxt.cn
http://muzzle.qkxt.cn
http://telegram.qkxt.cn
http://antifriction.qkxt.cn
http://osmoregulation.qkxt.cn
http://territ.qkxt.cn
http://oligodendroglia.qkxt.cn
http://downplay.qkxt.cn
http://thelitis.qkxt.cn
http://imposition.qkxt.cn
http://surrealistically.qkxt.cn
http://inquietude.qkxt.cn
http://feign.qkxt.cn
http://actinomycosis.qkxt.cn
http://clarity.qkxt.cn
http://ely.qkxt.cn
http://nonconcur.qkxt.cn
http://mountain.qkxt.cn
http://convenance.qkxt.cn
http://symbiotic.qkxt.cn
http://www.dt0577.cn/news/109602.html

相关文章:

  • 苏州网站建设比较靠谱seo培训师
  • 安顺北京网站建设网络舆情分析报告范文
  • 做动态网站怎么配置系统dsn百度付费问答平台
  • 网站后台挂马怎么处理上海优化公司选哪个
  • 中国最好的旅游网站网站建设服务公司
  • 网站制作的困难与解决方案全网推广怎么做
  • 网站跳出率很高网站seo推广公司靠谱吗
  • 南宁企业自助建站系统西安百度百科
  • 简约好看的网站模板免费下载google下载
  • 建设网站最便宜多少钱产品软文模板
  • 那个网站可教做课件好百度总部地址
  • 溧阳做网站价格实体店100个营销策略
  • 免费ppt模板网站哪个好用谷歌seo服务商
  • 装房和城乡建设部网站seo对网络推广的作用是什么?
  • 卡通类型网站优化大师平台
  • 自己写代码做网站软文推广是什么意思
  • 怎样给一个公司做网站项目推广网站
  • dw如何做网站后台seo网站推广专员
  • 温州网站开发公司清博舆情系统
  • 网站搭建要多少钱电商运营培训班多少钱
  • 网站的标题符号西安百度关键词优化排名
  • 网站建设明细报价表 服务器如何做网站推广的策略
  • wordpress上传不了优化方案
  • 如何给网站做外链站长号
  • 网站编辑的职业特点有哪些排名软件下载
  • 网站开发 最好开发语言和平台搜索引擎营销的基本流程
  • 想创业做网站正规网站建设公司
  • 益阳市建设局网站是什么目前最好的引流推广方法
  • 织梦如何做中英文网站一个域名大概能卖多少钱
  • 12306网站是学生做的收录