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

宝山区建设用地事务所网站asp.net个人网站模板

宝山区建设用地事务所网站,asp.net个人网站模板,博山网站seo,腾讯云服务器可以做传奇网站吗螺旋矩阵 题目 给你一个正整数 n #xff0c;生成一个包含 1 到 n2 所有元素#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1#xff1a; 输入#xff1a;n 3 输出#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2#xff1a; 输入#xff…螺旋矩阵 题目 给你一个正整数 n 生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1 输入n 3 输出[[1,2,3],[8,9,4],[7,6,5]]示例 2 输入n 1 输出[[1]]按层模拟解题思路 这段代码是一个生成螺旋矩阵的算法。它使用一个二维数组matrix来表示n行n列的矩阵通过循环来逐步填充矩阵中的元素。 首先定义四个变量left、right、top和bottom分别表示当前螺旋矩阵的左边界、右边界、上边界和下边界。另外还有一个变量num用于记录当前要填充的数字。然后通过一个while循环来依次填充矩阵中的元素。循环条件是num小于等于n*n也就是还没有填充完所有的元素。在循环中: 首先从左到右填充上边界即从left到right-1将数字num依次赋值给matrix[top][i]同时num递增。将top递增表示上边界向下移动一行。然后从上到下填充右边界即从top到bottom-1将数字num依次赋值给matrix[i][right]同时num递增。将right递减表示右边界向左移动一列。然后从右到左填充下边界即从right到left1将数字num依次赋值给matrix[bottom][i]同时num递增。将bottom递减表示下边界向上移动一行。最后从下到上填充左边界即从bottom到top1将数字num依次赋值给matrix[i][left]同时num递增。将left递增表示左边界向右移动一列。循环回到开始直到所有的元素都被填充完。 最后返回生成的螺旋矩阵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列的矩阵通过循环逐步填充矩阵中的元素。 首先定义了一些变量。maxNum表示最大的数字也就是矩阵中元素的个数curNum表示当前要填充的数字matrix是一个大小为n x n的二维数组初始值都为0row和column表示当前要填充的位置directions是一个数组表示四个方向的偏移量分别是右、下、左、上directionIndex表示当前的方向。然后通过一个while循环来依次填充矩阵中的元素。循环条件是curNum小于等于maxNum也就是还没有填充完所有的元素。在循环中 首先将当前位置的值设置为curNum然后curNum递增。接着计算下一个位置的行号和列号即nextRow row directions[directionIndex][0]和nextColumn column directions[directionIndex][1]。如果下一个位置超出了矩阵的边界或者已经有值了即不为0则说明需要改变方向。这里通过directionIndex (directionIndex 1) % 4来顺时针旋转到下一个方向。最后更新row和column的值为下一个位置的行号和列号进入下一次循环。 最终返回生成的螺旋矩阵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.w-s-a.com/news/953832/

相关文章:

  • 广州个人网站制作公司网站建设公司价
  • 免费建设网站赚钱小程序开发文档pdf
  • ucenter 整合两个数据库网站网店推广技巧
  • 网站优化排名提升百度wap
  • 八里河风景区网站建设内容摘要网站开发基础学习
  • 上海做外贸网站的公司智慧团建网站登陆平台
  • 上海商务网站建设如何做的网站手机可以用吗
  • 产品推广营销方案seo推广员招聘
  • 做水利网站需要多少钱山东市网站建设
  • 做网站找哪里如何修改wordpress颜色
  • 招商加盟网站系统站长工具 seo查询
  • 工商局网站清算组备案怎么做电商培训机构
  • 做好门户网站建设做本地团购网站怎么样
  • wordpress主题和预览不同20条优化防疫措施方案
  • 艾奇视觉网站建设网站推广需要几个人做
  • 2008 iis 添加网站wordpress固定链接标签加上页面
  • 宁波企业网站制作推荐网站优化人员
  • 大型资讯门户网站怎么做排名沈阳建设工程有限公司
  • 开发中英文切换网站如何做江苏网站建设费用
  • 网站论文首页布局技巧桥东网站建设
  • 网站开发项目经理工资北京微信网站
  • 山西山西省建设厅网站微信备份如何转换为wordpress
  • 同城网站开发实用网站模板
  • 郑州做网站哪家公司好国外购买空间的网站有哪些
  • 资讯cms网站有那些餐饮品牌策划设计公司
  • 网站策划选题网站布局优化
  • 网站建设3000字wordpress 微信 主题制作
  • 代做寄生虫网站网站菜单效果
  • 网站备案为什么这么慢目录更新 wordpress
  • 视频在线制作网站Wordpress 外链图片6