首页/新闻资讯/正文详情

【LeetCode 54】螺旋矩阵

发布时间:2026/9/27 9:07:10 来源:云帆数科 栏目:资讯中心
【LeetCode 54】螺旋矩阵
问题描述解法1、模拟参考自【LeetCode 54】螺旋矩阵-CSDN博客int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) { static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; int *ans malloc(sizeof(*ans) * 100); int row matrixSize; int col matrixColSize[0]; int num row * col; int i 0; int j 0; int k 0; int h 0; *returnSize num; while (num--) { /* 记录元素并标记为已记录 */ ans[k] matrix[i][j]; matrix[i][j] 0xff; /* 下一步可能的位置 */ int curr i dirs[h][0]; int next j dirs[h][1]; /* 判断下一步可能的位置是否合理越界或已记录则右转90° */ if (curr 0 || curr row || next 0 || next col || matrix[curr][next] 0xff) h (h 1) 0x03; // (x % 4) - (x 0x03) /* 下一步的位置 */ i dirs[h][0]; j dirs[h][1]; } return ans; }矩阵 dirs[4][2] 表示四方向偏移数组存储上下左右四个移动增量常用于网格类算法。具体含义如下下标上解的hdx, dy移动方向0(0, 1)右列 11(1, 0)下行 12(0,-1)左列 - 13(-1,0)上行 - 1if 的判断条件拆解螺旋遍历数组时若下一格坐标越界或下一格已经走过则顺时针旋转90°h%41.curr 0下一步行坐标小于 0继续向上则将走出矩阵上边界2. curr row下一步行坐标 ≥ 总行数继续向下则将走出矩阵下边界3. next 0下一步列坐标小于 0继续向左则将走出矩阵左边界4. next col下一步列坐标 ≥ 总列数继续向右则将走出矩阵右边界5. matrix[curr][next] 0xff下一步坐标合法且没有越界但之前已经遍历过(h % 4) → (h 0x03)对一个正整数取4的余数本质就是截取其二进制的最后两位用位运算更快是常见的优化方式。2、建立并维护边界int* sprialOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize) { if (!matrix) return NULL; int top 0, btm matrixSize - 1, left 0, right matrixColSize[0] - 1; *returnSize 0; int* arr malloc(sizeof(int) * matrixSize * matrixColSize[0]); while (top btm left right) { /* 左-右访问第top行 */ for (int i left; i right; i) arr[(*returnSize)] matrix[top][i]; top; /* 上-下访问第right列 */ for (int i top; i btm; i) arr[(*returnSize)] matrix[i][right]; right--; /* 右-左访问第btm行需要判断即将遍历的这条边是否存在 */ if (top btm) { for (int i right; i left; i--) arr[(*returnSize)] matrix[btm][i]; btm--; } /* 下-上访问第left列 */ if (left right) { for (int i btm; i top; i--) arr[(*returnSize)] matrix[i][left]; left; } } return arr; }【LeetCode 54】螺旋矩阵-CSDN博客解法2可看作是上解的优化方案二者的解决思路比较相似。

相关推荐

二维码库:二维码生成与扫描识别库(241)
二维码库:二维码生成与扫描识别库(241)

在鸿蒙(HarmonyOS)原生应用开发中,二维码与条形码的生成、扫描及识别是高频核心场景。鸿蒙生态提供了从系统级服务到跨平台库的丰富方案,帮助开发者快速构建精准的扫码体验。一、 官方核心方案:Scan Kit(统… · 2026/9/27 9:07:02

低价订阅plus
低价订阅plus

🚀 学习工作效率不够?让 AI 成为你的智能助手!无论你是正在赶课设、查资料、改论文、调代码的学生,还是需要写方案、做PPT、整理表格、优化文案的上班族,这里都能找到适合你的 GPT 等热门 AI 产品会员。✅ 梳理课设思路… · 2026/9/20 19:16:12

Kimi K3登顶前端开发榜引美股震荡,月之暗面遇“算力荒”或6个月内港股上市
Kimi K3登顶前端开发榜引美股震荡,月之暗面遇“算力荒”或6个月内港股上市

Kimi K3登顶前端开发榜引热议,月之暗面却遇“算力荒”,最快6个月内港股上市Kimi K3爆火后,被誉为“AI六小虎”之一的月之暗面遭遇了“算力荒”。7月19日,月之暗面Kimi团队发布公告,因始料未及的算力挑战,决… · 2026/9/22 9:05:32

Graylog Web 界面主题字体体系全解析:theme.fonts 的 Family、Size 与 LineHeight
Graylog Web 界面主题字体体系全解析:theme.fonts 的 Family、Size 与 LineHeight

日志分析运维观测 【免费下载链接】graylog2-server Free and open log management 项目地址: https://gitcode.com/gh_mirrors/gr/graylog2-server 点击查看 免费下载 Graylog Web 界面(graylog2-web-interface)使用 styled-components 驱动… · 2026/9/27 9:07:08

「AI原住民」上学记:这所深圳国际学校把课堂搬进真实世界
「AI原住民」上学记:这所深圳国际学校把课堂搬进真实世界

过去两年,AI的迭代速度不断刷新人们的想象,也让不少家长心头泛起疑问:孩子要怎样长大,才不会被机器取代?与其停留在担忧里观望,不如看看深圳明湾学校的校园里正在发生什么。5月16日至17日,2026年… · 2026/9/27 9:06:50

Azure Data Studio 集成 Azure CLI(az):azcli 扩展的功能定位、配置项与源码实现剖析
Azure Data Studio 集成 Azure CLI(az):azcli 扩展的功能定位、配置项与源码实现剖析

数据库客户端桌面应用数据分析 【免费下载链接】azuredatastudio Azure Data Studio is a data management and development tool with connectivity to popular cloud and on-premises databases. Azure Data Studio supports Windows, macOS, and Linux, with immediate capa… · 2026/9/27 9:06:38

用 Terratest 为 Terraform SSH 基础设施编写自动化测试:terraform-ssh-example 模块实战解析
用 Terratest 为 Terraform SSH 基础设施编写自动化测试:terraform-ssh-example 模块实战解析

测试开发工具DevOps质量保障 【免费下载链接】terratest Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. 项目地址: https://gitcode.com/gh_mirrors/te/terratest 点击查看 免费下载 本篇指南以仓库中的… · 2026/9/27 9:06:32

xiaobei(wiseflow)IT Engineer Agent 运维指南:环境变量、渠道绑定与排障流程全解析
xiaobei(wiseflow)IT Engineer Agent 运维指南:环境变量、渠道绑定与排障流程全解析

人工智能AI Agent大模型AI 应用媒体生成 【免费下载链接】xiaobei 为OPC/中小微企业量身打造的自媒体获客智能体 项目地址: https://gitcode.com/gh_mirrors/wi/xiaobei 点击查看 免费下载 导读 xiaobei(wiseflow)是 OpenClaw 的一个特制版… · 2026/9/27 9:06:32

Wand-Enhancer 免费解锁 Wand 专业版:三步完成完整实操指南
Wand-Enhancer 免费解锁 Wand 专业版:三步完成完整实操指南

Wand-Enhancer 免费解锁 Wand 专业版:三步完成完整实操指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand 把去广告、无限制游戏… · 2026/9/27 9:06:32

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码