当前位置: 首页 > news >正文

【Leetcode 每日一题】59. 螺旋矩阵 II

问题背景

给你一个正整数 n n n,生成一个包含 1 1 1 n 2 n ^ 2 n2 所有元素,且元素按顺时针顺序螺旋排列的 n × n n \times n n×n 正方形矩阵 m a t r i x matrix matrix

数据约束

  • 1 × n × 20 1 \times n \times 20 1×n×20

解题过程

定义方向数组,每次遇到越界的情况或是已经填过数字的位置,就变换方向。

具体实现

class Solution {private static final int[][] DIRECTIONS = new int[][] {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};public int[][] generateMatrix(int n) {int[][] res = new int[n][n];int i = 0;int j = 0;int direction = 0;// 按要填的数进行循环for (int cur = 1; cur <= n * n; cur++) {res[i][j] = cur;// 根据方向数组,计算下一个该填数的位置int x = i + DIRECTIONS[direction][0];int y = j + DIRECTIONS[direction][1];// 遇到越界的情况,或者下个位置已经填过数,就要变换方向if (x < 0 || x >= n || y < 0 || y >= n || res[x][y] != 0) {direction = (direction + 1) % 4;}// 迭代新位置i += DIRECTIONS[direction][0];j += DIRECTIONS[direction][1];}return res;}
}
http://www.lryc.cn/news/533030.html

相关文章:

  • 回退 android studio emulator 的版本
  • 数据资产的管理与价值释放
  • 部署夜景增强模型Learning to See in the Dark以及gradio UI编程方法
  • 【报错解决】MySQL报错:sql_mode=only_full_group_by
  • 【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)
  • [Day 16]螺旋遍历二维数组
  • 大模型的底层逻辑及Transformer架构
  • 数据结构-基础
  • SystemUI中NavigationBar分析
  • MySQL的底层原理与架构
  • 三极管的截止、放大、饱和区
  • 2025-2-7-算法学习(一) 动态规划-习题1 300.最长递增子序列
  • 学习日记-250207
  • 【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性
  • 代码随想录算法训练营第三十一天| 回溯算法04
  • pycharm集成通义灵码应用
  • 赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索
  • 【Leetcode刷题记录】54. 螺旋矩阵--模拟,以及循环条件处理的一些细节
  • c++计算机教程
  • 蓝桥杯Java之输入输出练习题
  • 【R语言】环境空间
  • 【系统架构设计师】分布式数据库透明性
  • openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包
  • OpenCV:图像修复
  • QT全局所有QSS样式实时切换
  • MySQL三大版本的演进
  • 利用 IMU 估计人体关节轴向和位置 —— 论文推导
  • 脚本一键生成管理下游k8s集群的kubeconfig
  • 数据库系统概念第六版记录 三
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-files.py