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

示例 1:

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

解题思路

按层进行数字的填充,每一层都按四条边的位置依次填充

代码

class Solution {int  z=1;public int[][] generateMatrix(int n) {int[][] matrix = new int[n][n];int r=matrix.length,c=matrix.length,x=0,y=0;put(r,c,x,y,matrix);return matrix;}public void put (int r,int c,int x,int y,int[][] matrix){if(r<=0||c<=0) return;//矩阵有偶数层if(r==1)//矩阵有奇数层,最后一层只有一个元素{       matrix[y][x]=z;return;}for (int i=x;i<x+c;i++)matrix[y][i]=z++;for (int i=y+1;i<y+r-1;i++)matrix[i][x+c-1]=z++;for (int i=x+c-1;i>=x;i--)matrix[y+r-1][i]=z++;for (int i=y+r-2;i>y;i--)matrix[i][x]=z++;put(r-2,c-2,x+1,y+1,matrix);}
}

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 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, ...

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

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

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

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

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

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

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

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

最新文章

  1. ubuntu14.04上搭建android开发环境
  2. mysql导入csv文件
  3. Eclipse中启动tomcat报错:A child container failed during start
  4. Spring+Quartz实现定时执行任务的配置
  5. 【CTF WEB】反序列化
  6. live555抓包实例
  7. redis学习-列表(list)常用命令
  8. matlab运动前无轨迹线,matlab 前轮前驱运动模型公式 和 轨迹仿真
  9. 梦断代码读后感(一)
  10. poj 2409 Let it Bead Polya计数
  11. thrift java 对象_Apache Thrift,Java:对象数据类型
  12. 应用SqlParameter防止注入式攻击,打开主窗体关闭登录窗体
  13. 让惊艳无处不在 Win7桌面便签操作技巧
  14. 时光倒流软件测试简历,时光倒流 28款数据恢复软件大比拼
  15. Android布局——小米便签编辑界面xml
  16. c语言中until的用法,until的用法总结
  17. 什么是SaaS模式 - SaaS模式的视频会议系统
  18. vue3 watch 异步方法
  19. kali全版本镜像下载地址
  20. 中国象棋局面识别 -3. 棋谱字符串生成

热门文章

  1. QT的foreach用法
  2. IO多路复用之select
  3. 7天拿到阿里Android岗位offer,都是精髓!
  4. 从新手到Flutter架构师,一篇就够!学习路线+知识点梳理
  5. Java并发Semaphore信号量的学习
  6. day03 基本数据类型
  7. php 数据访问练习:投票页面
  8. 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
  9. 腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的...
  10. js 中null,undefined区别