leetcode_59. 螺旋矩阵 II

devtools/2024/12/22 16:32:15/

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/devtools/99058.html

相关文章

[Matsim]Matsim学习笔记-drt场景中车辆调度的学习

学习需求 在用matsim实现交通流模拟drt场景时&#xff0c;遇到这样一个问题&#xff1a;车辆接送完乘客后&#xff0c;在没有新的订单之前&#xff0c;车辆一直停在最后一个停靠点上&#xff0c;这样车辆的利用率会较低&#xff0c;想实现一个送完最后一个乘客后&#xff0c;车…

【最经典的79个】软件测试面试题(内含答案)

001.软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果 0002.问&…

VBA技术资料MF185:图片导入Word添加不同格式说明文字

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

探索TensorFlow:深度学习的未来

标题&#xff1a;探索TensorFlow&#xff1a;深度学习的未来 在当今快速发展的人工智能领域&#xff0c;TensorFlow无疑是最耀眼的明珠之一。TensorFlow是由Google Brain团队开发的一个开源机器学习框架&#xff0c;它以其强大的灵活性、易用性和高效的性能&#xff0c;迅速成…

【速览】计算机网络(更新中)

目录 一、背景二、优缺点三、适用场景四、核心组成分层结构TCP/UDP区别TCP三次握手、四次挥手 HTTP/HTTPS区别无状态长连接、短连接 状态码Cookie和SeesionURI和URL 五、底层原理六、对比参考 一、背景 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这…

加速指南:如何使用Kimi提升论文写作效率?

在学术研究领域&#xff0c;撰写论文是一项基础且关键的任务&#xff0c;它要求作者不仅要有扎实的专业知识&#xff0c;还要具备高效的信息处理能力和清晰的表达技巧。学术写作是一个复杂的过程&#xff0c;涉及多个阶段&#xff1a;从选题、资料搜集、论文结构设计&#xff0…

Vue3自定义hooks

1. 什么是自定义hooks&#xff1f; 以函数形式抽离一些可复用的方法像钩子一样挂着&#xff0c;随时可以引入和调用&#xff0c;实现高内聚低耦合的目标。 高内聚&#xff1a;指一个模块内部的功能应该尽可能相关&#xff0c;模块内的元素应紧密合作&#xff0c;完成单一且明确…

Java、python、php版的高考志愿填报辅助系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…