每日算法:螺旋矩阵

开发 前端 算法
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

[[431971]]

本文转载自微信公众号「三分钟学前端」,作者sisterAn  。转载本文请联系三分钟学前端公众号。

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

示例:

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

解答

  1. const generateMatrix = (n) => { 
  2.     // 定义一个二维数组进行数据保存 
  3.     const result = [] 
  4.     for (let i = 0; i < n; i++) { 
  5.         result.push(new Array(n)) 
  6.     } 
  7.     let left = 0 
  8.     let right = n - 1 
  9.     let top = 0 
  10.     let bottom = n - 1 
  11.     let current = 1, max = n * n 
  12.     while(current <= max) { 
  13.         // 上面从左到右 
  14.         for (let i = left; i <= right; i++) { 
  15.             result[top][i] = current++ 
  16.         } 
  17.         top ++ 
  18.         // 右边从上到下 
  19.         for (let i = top; i <= bottom; i++) { 
  20.             result[i][right] = current++ 
  21.         } 
  22.         right -- 
  23.         // 下边从右到左 
  24.         for (let i = right; i >= left; i--) { 
  25.             result[bottom][i] = current++ 
  26.         } 
  27.         bottom -- 
  28.         // 左边从下到上 
  29.         for (let i = bottom; i >= top; i--) { 
  30.             result[i][left] = current++ 
  31.         } 
  32.         left ++ 
  33.     } 
  34.     return result 

 

leetcode:https://leetcode-cn.com/problems/spiral-matrix-ii

 

责任编辑:武晓燕 来源: 三分钟学前端
相关推荐

2021-10-28 19:33:36

矩阵图像内存

2021-08-30 14:34:10

有效算法字符

2021-11-19 07:54:40

前端

2021-11-12 09:44:03

字符串算法复杂度

2021-09-30 09:58:14

路径总和二叉树

2021-11-04 09:59:03

动态规划策略

2021-09-03 09:41:36

字符串时间复杂度

2021-10-26 00:23:26

算法高频元素

2017-02-08 09:25:16

Spark分解推荐

2021-10-27 10:43:36

数据流中位数偶数

2021-09-29 10:19:00

算法平衡二叉树

2021-09-08 09:52:34

语言

2021-09-02 09:22:13

算法无重复字符

2021-09-10 08:31:54

翻转字符串单词

2021-09-15 07:56:32

二叉树层次遍历

2024-07-16 12:54:40

2023-02-15 09:00:00

算法推荐系统矩阵分解算法

2021-09-28 06:28:51

二叉树公共祖先

2021-10-19 10:09:21

三角形个数数组

2021-08-26 05:08:25

相邻重复项算法
点赞
收藏

51CTO技术栈公众号