NEWS DETAIL

【LeetCode 54】螺旋矩阵

发布时间:2026/10/18 23:55:59 · 栏目:资讯中心

尧图网络原创建站知识分享正文
问题描述解法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可看作是上解的优化方案二者的解决思路比较相似。
✦

本文为尧图网络原创建站知识分享。想针对自身行业获取定制化建站方案?欢迎咨询,资深顾问免费为你出思路。

RELATED

相关 资讯推荐

MORE

更多 新鲜资讯

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析
2026/10/16 11:11:29

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析

1. 项目概述:从零开始,用JMeter搞定HTTP性能测试 刚接触性能测试的新手,或者是从功能测试转过来的朋友,一听到“压测”两个字,心里可能就有点发怵。工具那么多,概念那么杂,从哪儿下手呢&#xf…

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统
2026/10/15 22:19:23

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统

最近我用TypeScript写了一个运行在浏览器里的Web操作系统 Earendel(目前已知的距离地球最遥远的恒星)。开发它的初衷主要是为了Linux和操作系统课程的教学。市面上绝大多数Web OS项目,要么只是做了一个长得像Windows/macOS的网页UI拼盘&#…

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]
2026/10/13 20:48:30

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形🚀 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: http…

从零制作同人动画:技术路线、流程与实战避坑指南
2026/10/18 17:29:00

从零制作同人动画:技术路线、流程与实战避坑指南

1. 先搞清楚这个“粉丝动画”到底是什么,以及它能解决什么问题看到“五条悟VS宿傩/咒术回战粉丝动画”这个标题,很多人的第一反应可能是去找一个现成的视频。但如果你是一个想自己动手创作、或者想了解这类作品背后技术流程的创作者,这个标题…

闭源降价80%,开源却在涨价:AI定价的交叉路口
2026/10/18 4:20:23

闭源降价80%,开源却在涨价:AI定价的交叉路口

8月6日,两条价格曲线悄然交汇。 一条向下:OpenAI把GPT-5.6 Luna的输出价格从6美元砍到1.2美元/百万Token,降幅80%。另一条向上:同一天,DeepSeek公告全线涨价,措辞是"涨幅较大",非试探…

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买
2026/10/17 21:18:48

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买经常有工厂朋友拿着网上的"三防平板十大品牌排行榜"来问我:到底选哪个?说实话排行榜看看就行,真正选型得看你产线什么场景。今天挑五个在产线数字化里用得比较多的品牌—…

看完这篇,还想了解更多?

预约尧图网络顾问一对一沟通,针对你的行业与现状给出建站建议,全程免费。

免费咨询