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

怎么做二维码让别人扫码进入网站百度关键词优化的意思

怎么做二维码让别人扫码进入网站,百度关键词优化的意思,东莞网站建设公司排名,中高端网站设计排名螺旋矩阵 题目 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2: 输入&#xff…

螺旋矩阵

题目

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

示例 1:

img

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

示例 2:

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

按层模拟解题思路

这段代码是一个生成螺旋矩阵的算法。它使用一个二维数组matrix来表示n行n列的矩阵,通过循环来逐步填充矩阵中的元素。

  1. 首先,定义四个变量left、right、top和bottom,分别表示当前螺旋矩阵的左边界、右边界、上边界和下边界。另外,还有一个变量num用于记录当前要填充的数字。
  2. 然后,通过一个while循环来依次填充矩阵中的元素。循环条件是num小于等于n*n,也就是还没有填充完所有的元素。
  3. 在循环中:
    • 首先从左到右填充上边界,即从left到right-1,将数字num依次赋值给matrix[top][i],同时num递增。将top递增,表示上边界向下移动一行。
    • 然后从上到下填充右边界,即从top到bottom-1,将数字num依次赋值给matrix[i][right],同时num递增。将right递减,表示右边界向左移动一列。
    • 然后从右到左填充下边界,即从right到left+1,将数字num依次赋值给matrix[bottom][i],同时num递增。将bottom递减,表示下边界向上移动一行。
    • 最后从下到上填充左边界,即从bottom到top+1,将数字num依次赋值给matrix[i][left],同时num递增。将left递增,表示左边界向右移动一列。循环回到开始,直到所有的元素都被填充完。
  4. 最后,返回生成的螺旋矩阵matrix。

代码

/*** @param {number} n* @return {number[][]}*/
var generateMatrix = function(n) {let matrix = [];for (let i = 0; i < n; i++) {matrix.push([]);}let left = 0, right = n - 1, top = 0, bottom = 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--;for (let i = right; i >= left; i--) matrix[bottom][i] = num++;bottom--;for (let i = bottom; i >= top; i--) matrix[i][left] = num++;left++;}console.log(matrix);return matrix;
};

模拟法解题思路

这段代码是用JavaScript编写的生成螺旋矩阵的函数。它使用一个二维数组matrix来表示n行n列的矩阵,通过循环逐步填充矩阵中的元素。

  1. 首先,定义了一些变量。maxNum表示最大的数字,也就是矩阵中元素的个数;curNum表示当前要填充的数字;matrix是一个大小为n x n的二维数组,初始值都为0;rowcolumn表示当前要填充的位置;directions是一个数组,表示四个方向的偏移量,分别是右、下、左、上;directionIndex表示当前的方向。
  2. 然后,通过一个while循环来依次填充矩阵中的元素。循环条件是curNum小于等于maxNum,也就是还没有填充完所有的元素。
  3. 在循环中:
    • 首先将当前位置的值设置为curNum,然后curNum递增。
    • 接着,计算下一个位置的行号和列号,即nextRow = row + directions[directionIndex][0]nextColumn = column + directions[directionIndex][1]
    • 如果下一个位置超出了矩阵的边界或者已经有值了(即不为0),则说明需要改变方向。这里通过directionIndex = (directionIndex + 1) % 4来顺时针旋转到下一个方向。
    • 最后,更新rowcolumn的值为下一个位置的行号和列号,进入下一次循环。
  4. 最终,返回生成的螺旋矩阵matrix

代码

var generateMatrix = function(n) {const maxNum = n * n;let curNum = 1;const matrix = new Array(n).fill(0).map(() => new Array(n).fill(0));let row = 0, column = 0;const directions = [[0, 1], [1, 0], [0, -1], [-1, 0]]; // 右下左上let directionIndex = 0;while (curNum <= maxNum) {matrix[row][column] = curNum;curNum++;const nextRow = row + directions[directionIndex][0], nextColumn = column + directions[directionIndex][1];if (nextRow < 0 || nextRow >= n || nextColumn < 0 || nextColumn >= n || matrix[nextRow][nextColumn] !== 0) {directionIndex = (directionIndex + 1) % 4; // 顺时针旋转至下一个方向}row = row + directions[directionIndex][0];column = column + directions[directionIndex][1];}return matrix;
};
http://www.hkea.cn/news/839763/

相关文章:

  • 新手制作网站工具bt磁力猪
  • 怎么做网站系统深圳头条新闻
  • 北京网站设计公司新鸿儒seo公司的选上海百首网络
  • 百姓网二手拖拉机百度seo优化排名客服电话
  • 北京南站是丰台站吗seo优化什么意思
  • 外贸营销型建站关键词全网搜索工具
  • 有什么网站可以做扣扣头像腾讯企点app下载安装
  • 网站设计怎么做链接拉新推广怎么快速拉人
  • 怎么自己做礼品网站补肾壮阳吃什么药效果好
  • 网站用户建设的设计与实现网站推广营销运营方式
  • html5韩国网站模板seo网站优化培训班
  • 网站被iframe信息推广的方式有哪些
  • 通信技术公司网站建设app推广代理
  • 做电影网站会违法吗营销说白了就是干什么的
  • 用外链技术做视频网站关键词在线听免费
  • 做网站常用的css最近三天的新闻热点
  • 全国人大常委会副委员长登封seo公司
  • 顶岗实践网站开发推广管理
  • 九号公司网站优化效果
  • 模板网站建设方案北京seo排名收费
  • 做箱包关注哪个网站泰州seo平台
  • 如何给网站做流量站长工具seo
  • 桂林网站开发建设推广任务接单平台
  • 化妆品 网站建设案例seo超级外链工具免费
  • 网站建设的广告语seo自动工具
  • 有专门做市场分析的网站么太原关键词优化报价
  • 网站文化建设搜索引擎推广的常见形式有
  • wordpress分类目录消失泸州网站seo
  • 易云巢做网站公司seo入门到精通
  • 新津网站建设百度ai助手入口