Medium!

题目描述:

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

示例:

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

解题思路:

此题跟之前那道 Spiral Matrix 螺旋矩阵 本质上没什么区别,就相当于个类似逆运算的过程,这道题是要按螺旋的顺序来填数,由于给定矩形是个正方形,我们计算环数时用n / 2来计算,若n为奇数时,此时最中间的那个点没有被算在环数里,所以最后需要单独赋值,下标转换问题是难点,可以参考之前 Spiral Matrix 螺旋矩阵 的讲解来转换下标。

C++解法一:

 1 class Solution {
 2 public:
 3     vector<vector<int> > generateMatrix(int n) {
 4         vector<vector<int> > res(n, vector<int>(n, 1));
 5         int val = 1, p = n;
 6         for (int i = 0; i < n / 2; ++i, p -= 2) {
 7             for (int col = i; col < i + p; ++col)
 8                 res[i][col] = val++;
 9             for (int row = i + 1; row < i + p; ++row)
10                 res[row][i + p - 1] = val++;
11             for (int col = i + p - 2; col >= i; --col)
12                 res[i + p - 1][col] = val++;
13             for (int row = i + p - 2; row > i; --row)
14                 res[row][i] = val++;
15         }
16         if (n % 2 != 0) res[n / 2][n / 2] = val;
17         return res;
18     }
19 };

转载于:https://www.cnblogs.com/ariel-dreamland/p/9149435.html

LeetCode(59):螺旋矩阵 II相关推荐

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

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

  2. LeetCode 59. 螺旋矩阵 II LeetCode 54. 螺旋矩阵

    文章目录 1. 题目信息 2. LeetCode 59 解题 3. LeetCode 54. 螺旋矩阵 4.<剑指Offer>面试题29 1. 题目信息 给定一个正整数 n,生成一个包含 ...

  3. LeetCode 59. 螺旋矩阵 II

    和54.螺旋矩阵 类似 public static int[][] generateMatrix(int n) {int[][] a = new int[n][n];if(n<1)return ...

  4. Leetcode 59. 螺旋矩阵 II (每日一题 20210926)

    给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix .示例 1:输入:n = 3 输出:[[1,2,3],[8,9,4],[ ...

  5. leetcode 59. 螺旋矩阵 II(递归)

    给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . 示例 1: 输入:n = 3 输出:[[1,2,3],[8,9,4] ...

  6. leetcode —— 59. 螺旋矩阵 II

    给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, ...

  7. LeetCode 59. 螺旋矩阵 II(python、c++)

    题目描述 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7 ...

  8. LeetCode 59. 螺旋矩阵 II [水题+简单模拟]

    前言: 最近要准备硕士研究生入学复试,还要机试,所以又开始刷一些题了. 太久没刷题了,本来就菜,现在变得更菜了-- 题面: 吐槽:题目来自LeetCode,难度标识为"中等",有点 ...

  9. 2022-7-8 Leetcode 59.螺旋矩阵 II

    class Solution {public:vector<vector<int>> generateMatrix(int n) {vector<vector<in ...

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

    leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...

最新文章

  1. 发新款电池!成本降低14%,特斯拉会继续降价吗?
  2. SVG(网页加载显示的加载进度动态图)
  3. 一个持续6年的针对多国政府机构的网络间谍活动 — “美人鱼行动”
  4. ul li前面的点怎么变大_硅片尺寸变大,生产成本降低,光伏电池生产商转向更大尺寸硅片...
  5. 实现销售榜单下载功能
  6. moead算法流程步骤_算法——抓住程序的灵魂
  7. 父母该不该把自己的收入告诉孩子?
  8. Linux下TCP循环接收数据的方式
  9. junit框架——单元测试
  10. 限制文本框只能输入数字
  11. JmeterTCP返回响应码500
  12. IDEA导入MySQL驱动包(Mac版)
  13. vue3仿网易云移动应用
  14. HTML5基础与Meta http-equiv属性详解
  15. IT资产管理系统Snipe-IT使用docker安装记录
  16. Excel文件解析性能对比(POI,easyexcel,xlsx-streamer)
  17. 测试最常见的21个故障模型
  18. 2022中国消费者洞察
  19. 社区专家谈 12306 1
  20. 农村土地确权之数据入库 —— 国源软件数据入库说明[多档案入库]

热门文章

  1. live555学习之基本类介绍及计划任务深度探讨
  2. 完美解决office2013 错误1402
  3. centos下 安装jdk
  4. WPF学习笔记——在“System.Windows.StaticResourceExtension”上提供值时引发了异常
  5. 用openssh下的sftp通过chroot控制用户
  6. Snowflake Snow Snowflakes--POJ 3349
  7. 关于线程堆栈大小的注意事项-转
  8. Mysql utf8 和utf8mb4 的区别
  9. [Python] L1-053 电子汪-PAT团体程序设计天梯赛GPLT
  10. 戴明理论、朱兰理论、克鲁斯比理论和田口玄一理论