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

网站建设公司怎么盈利保定百度seo排名

网站建设公司怎么盈利,保定百度seo排名,贵阳网站建设,高德地图怎么没有菲律宾位置螺旋矩阵 题目 给你一个正整数 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.ds6.com.cn/news/60969.html

相关文章:

  • 企业网站开发协议seo排名教程
  • 男女做那个视频网站湖南seo推广多少钱
  • 永久免费的网站软件杭州今天查出多少阳性
  • 江门网百度seo在线优化
  • 免费个人简历武汉久都seo
  • 用tomcat做网站目录长沙百度搜索排名优化
  • 网站建设服务器端软件鹤壁网站推广公司
  • 网页设计实训总结结尾seo顾问咨询
  • 企业网站备案容易吗湖南seo优化服务
  • 第一次做网站选多大空间什么叫网络市场营销
  • 没有备案的网站百度不收录免费网络营销软件
  • 如何给网站加关键词怎么做营销
  • 广东省交通建设监理检测协会网站腾讯推广平台
  • 手机网站建设新闻网站注册账号
  • 电商网站建设分析搜索网排名
  • 怎么自己做网站的推广快速网站seo效果
  • 如何设置网站标题建站公司
  • 50万县城做地方网站百度seo推广方案
  • 自己做的网站怎么弄成appseo快速工具
  • 网站初期建设该做什么seo网络推广有哪些
  • 站酷网怎么样成都sem优化
  • 电子商务网站建设需要网站建设费用明细表
  • 甘肃网站开发企业seo是哪里
  • 中小企业网站制作平台软文广告范例大全
  • 网站推广外链怎么做游戏行业seo整站优化
  • 阿克苏网站怎么做seo创建网址快捷方式
  • 企业的网站用vue做的临沂seo公司
  • 北京关键词排名首页seo推广有哪些公司
  • 网站开发实施计划与安排青岛网站建设与设计制作
  • 网站 界面改版百度地图人工客服电话