leetcode_59. 螺旋矩阵 II

server/2024/9/24 19:47:58/

59. 螺旋矩阵 II

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

示例 1:

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

示例 2:

输入:n = 1
输出:[[1]]

提示:

  • 1 <= n <= 20

代码思想:

         定义一个变量 circle 表示需要遍历的圈数,一个变量 num 来记录当前需要填入的数字,从 1 开始递增。遍 历每一个圈,对于每个圈:

  • 向右遍历上侧,填入数字 num 到 matrix[i][k]
  • 向下遍历右侧,填入数字 num 到 matrix[k][n-i-1]
  • 向左遍历下侧,填入数字 num 到 matrix[n-i-1][k]
  • 向上遍历左侧,填入数字 num 到 matrix[k][i]

         关键点在于利用圈的概念来遍历螺旋矩阵。对于每个圈,需要遍历上、右、下、左四条边,并且每个圈的起始和结束位置都不一样。通过控制循环条件,可以依次填入从 1 到 n^2 的数字,最终形成一个螺旋矩阵。

java">class Solution {public int[][] generateMatrix(int n) {int num = 1;int circle = (n + 1) / 2;int[][] matrix = new int[n][n];for (int i = 0; i < circle; i++) {for (int k = i; k < n - i - 1; k++) {matrix[i][k] = num++;}for (int k = i; k < n - i - 1; k++) {matrix[k][n - i - 1] = num++;}for (int k = n - i - 1; k >= i; k--) {matrix[n - i - 1][k] = num++;}for (int k = n - i - 2; k > i; k--) {matrix[k][i] = num++;}}return matrix;}
}

http://www.ppmy.cn/server/103724.html

相关文章

基因组学系列4:参考转录本数据库MANE

1. 参考转录本数据库MANE简介 为了促进临床参照的一致性&#xff0c;美国国家生物技术信息中心( NCBI)和欧洲分子生物学实验室-欧洲生物信息学研究所(EMBL-EBI)合作发布了参考转录本数据库MANE&#xff08;Matched Annotation from the NCBI and EMBL-EBI&#xff09;&#xf…

【python】逐步回归(多元线性回归模型中的应用)

文章目录 前言一、逐步回归1. 前进法&#xff08;Forward Selection&#xff09;2. 后退法&#xff08;Backward Elimination&#xff09;3. 逐步回归法&#xff08;Stepwise Regression&#xff09; 二、示例三、代码实现----python 前言 Matlab中逐步回归的实现可以使用 Mat…

极限02:两个重要极限

1.夹逼准则 定义&#xff1a;设{ a n a_n an​}, { b n b_n bn​}, { c n c_n cn​}为实数列&#xff0c; a n ≤ b n ≤ c n a_n≤b_n≤c_n an​≤bn​≤cn​, 且 lim ⁡ n → ∞ a n lim ⁡ n → ∞ c n l \lim_{n \to \infty} a_n \lim_{n \to \infty} c_n l n→∞lim​…

平衡日常工作与提升式学习话题有感

文章目录 前言1.工作是什么&#xff1f;2.怎么提升技术&#xff1f;3.工作/学习与生活的平衡总结 前言 这篇博客是针对程序员如何平衡日常编码工作与提升式学习&#xff1f;这个话题进行的个人观点阐述&#xff0c;个人所思所想罢了。 刚毕业没几年&#xff0c;水平有限&#…

运行微信小程序报错:Bad attr data-event-opts with message

问题 使用uniapp 编译&#xff0c;运行微信小程序环境时&#xff0c;报错 Bad attr data-event-opts with message。&#xff08;这个错误报错原因很多&#xff0c;这里只解决一个&#xff09; 原因 原因是&#xff1a;代码中有&#xff1a; :key"swiperList i"…

RAM(随机存取存储器)都有哪些?(超详细)

目录 RAM的特点 RAM的类型 1. SRAM&#xff08;静态随机存取存储器&#xff09; 2. DRAM&#xff08;动态随机存取存储器&#xff09; 3. SDRAM&#xff08;同步动态随机存取存储器&#xff09; 4. DDR SDRAM&#xff08;双倍数据速率同步动态随机存取存储器&#xff09;…

【Python开发实践】AI人机对战五子棋——程序调用及运行效果

主函数调用&#xff1a; if __name__ __main__:game Game(version)while True:game.play()pygame.display.update()for event in pygame.event.get():if event.type pygame.QUIT:pygame.quit()exit()elif event.type pygame.MOUSEBUTTONDOWN:mouse_x, mouse_y pygame.mou…

打破接口壁垒:适配器模式让系统无缝对接

适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许不兼容的接口之间协同工作。主要用途是将一个类的接口转换成客户期望的另一个接口&#xff0c;使得原本接口不兼容的对象可以一起工作。 一、适配器模式的组成 目标接口&#xff08…