方法一:

红色的点为每一圈的起始点

var generateMatrix = function(n) {let x = y = 0;   // 起始位置let loop = Math.floor(n/2);   // 旋转圈数let mid = Math.floor(n/2);    // 中间位置let number = 1;    // 控制每一层填充元素个数let count = 1;     // 更新填充数字let res = new Array(n).fill(0).map(() => new Array(n).fill(0));while(loop--){let row=y let col=x//左到右,col++for(;col<n+x-number;col++){res[row][col]=count++}//for结束时,col为最大值//上到下,row++for(;row<n+y-number;row++){res[row][col]=count++}//for结束时,row为最大值//从右到左,col--for(col;col>x;col--){res[row][col]=count++}//for结束时,col为最小值//从下到上,row--for(row;row>y;row--){res[row][col]=count++}//for结束时,row为最小值//更新起点x++y++//更新控制每圈填的个数number+=2}//如果n为奇数,最后一圈不成环,只有一个数if(n%2===1){res[mid][mid]=count}return res
};

方法二:

var generateMatrix = function(n) {let count=1let arr = new Array(n).fill(0).map(() => new Array(n).fill(0))let top=0let left=0let right=bottom=n-1while(left<=right&&top<=bottom){for(let col=left;col<=right;col++){arr[top][col]=count++}for(let row=top+1;row<=bottom;row++){arr[row][right]=count++}if(left<right&&top<bottom){for(let col=right-1;col>left;col--){arr[bottom][col]=count++}for(let row=bottom;row>top;row--){arr[row][left]=count++}}top++left++right--bottom--}return arr
};

力扣59.螺旋矩阵II(JavaScript)相关推荐

  1. 代码随想录算法训练营第二天 | 力扣977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

    代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 977.有序数组的平方 题目链接:有序数组的平方 题目描述: 给你一个按 非递减顺序 排序的整 ...

  2. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...

  3. 【代码随想录训练营】【Day02】第一章|数组|977.有序数组的平方|209.长度最小的子数组|59.螺旋矩阵II|总结

    977. 有序数组的平方 题目详细:LeetCode.977 解这道题的思路和方法有很多,最简单的方法就是计算出数组中每个元素的平方数,并记录在新数组中,最后对新数组进行排序即可得到答案,但这个方法效 ...

  4. 代码随想录算法训练营第二天| 977有序数组平方、207最小子数组、59螺旋矩阵II。

    977.有序数组的平方 力扣题目链接 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: 输入:nums = [-4,-1, ...

  5. 随想录一期 day2 [977.有序数组的平方|209. 长度最小的子数组|59.螺旋矩阵II(剥洋葱)]

    977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 思路 递增数组,平方后最大值一定在最左侧或者最右侧,可想到– ...

  6. 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II、数组总结

    目录: 977.有序数组的平方 209.长度最小的子数组 1.暴力输出法 2.滑动窗口法 59.螺旋矩阵II 总结: 今日收获: 977.有序数组的平方 因为是递增且有负数的数组,那么他们的平方如果还 ...

  7. Leonard代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II。

    第一章数组 (今日任务) 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结 建议大家先独立做题,然后看视频讲解,然后看文章讲解,然后在重新做一遍题,把题目AC,最后整理 ...

  8. 代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II。

    代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II. 977.有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵 II 977.有序数组的 ...

  9. 代码随想录训练营第二天|LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    day2 | LeetCode977.有序数组的平方.209.长度最小的子数组.59.螺旋矩阵II 创建时间: October 13, 2022 3:29 PM 一.今日任务 977.有序数组的平方 ...

最新文章

  1. 公布硕士论文最新进展一(2007.3.6)
  2. cisco SMD 配置安装
  3. Kubernetes 容器网络模型和典型实现
  4. BJUI验证后弹窗不显示
  5. 数据结构——HDU1312:Red and Black(DFS)
  6. C#LeetCode刷题-树状数组
  7. Python编程实例(4)
  8. 【Ubuntu18.04】Seetaface6人脸识别部署
  9. 20191202_k-中心聚类算法和k-mean算法Python实现
  10. halcon学习和实践(开篇)
  11. 【UML】UML基础教程(总三篇文章)
  12. 网站建设的一般原则及网站推广技巧
  13. codeforces1299C Water Balance
  14. C# 实验三 面向对象程序设计(一)
  15. js获取map对象的key和value
  16. windbg 常用命令
  17. Hydra暴力破解神器使用教程
  18. 各国语言缩写-各国语言简称
  19. badfail@qq.com+java_Java KeeperException.BadArgumentsException方法代码示例
  20. readelf, nm

热门文章

  1. 绿茶软件测试自学,抖音7号心理测试在哪 7号心理测试小程序绿茶答案
  2. 获取来源网站php,js实现获取网站搜索来源代码
  3. android listview 刷新不正确,Android中设置ListView内容刷新问题
  4. linux判断字符串命令行,bash – 将命令行参数与字符串进行比较
  5. Cron 触发器及相关内容 (第一部分)
  6. webvie使用--官方api
  7. Fragment学习1--生命周期
  8. android上拉刷新下拉加载
  9. 京东:笔试题(合唱队找剩余的最小值,考场安排搬出的人数尽可能少)
  10. hanlp源码解析之中文分词算法