news 2026/5/3 4:54:41

leetcode 885. Spiral Matrix III 螺旋矩阵 III

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 885. Spiral Matrix III 螺旋矩阵 III

Problem: 885. Spiral Matrix III 螺旋矩阵 III

解题过程

防止越界的问题,所以扩展了边界的,将矩阵复制到中间,方向累加的,取模4,长度len在方向上前进len步,当该格子访问过时,才累加长度len++,避免了越界问题

Code

class Solution { public: vector<vector<int>> spiralMatrixIII(int rows, int cols, int rStart, int cStart) { vector<vector<bool>> status( 301, vector<bool>(301, false) ); vector<vector<int>> matrix(301, vector<int>(301, -1)); vector<vector<int>> ret; ret.push_back({rStart, cStart}); rStart += 100; cStart += 100; for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { matrix[i + 100][j + 100] = 0; } } int len = 1, direction = 1, sum = rows * cols, k, x, y; if(ret.size() == sum) return ret; status[rStart][cStart] = true; while(sum > 0) { k = len; while(k > 0) { x = rStart; y = cStart; if( direction % 4 == 1 ) { ++cStart; } else if( direction % 4 == 2 ) { ++rStart; } else if( direction % 4 == 3 ) { --cStart; } else { --rStart; } if(status[rStart][cStart] == true) { rStart = x; cStart = y; direction = (direction - 1 + 4) % 4; len++; k = 1; continue; } if(matrix[rStart][cStart]==0) { ret.push_back({rStart-100, cStart-100}); if(ret.size() == sum) { return ret; } } status[rStart][cStart] = true; k--; } direction++; } return {{}}; } };

官方题解的答案

class Solution { public: vector<vector<int>> spiralMatrixIII(int rows, int cols, int rStart, int cStart) { vector<vector<int>> ret = {{rStart, cStart}}; int sum = rows * cols; if(sum == 1) { return ret; } for(int i = 1; i < rows * cols * 2; i++) { if( (i&1)==1 ) { for(int j = 0; j < i; j++) { cStart++; if(rStart>=0 && rStart < rows && cStart>=0 && cStart < cols) { ret.push_back({rStart, cStart}); } } for(int j = 0; j < i; j++) { rStart++; if(rStart>=0 && rStart < rows && cStart>=0 && cStart < cols) { ret.push_back({rStart, cStart}); } } } else { for(int j = 0; j < i; j++) { cStart--; if(rStart>=0 && rStart < rows && cStart>=0 && cStart < cols) { ret.push_back({rStart, cStart}); } } for(int j = 0; j < i; j++) { rStart--; if(rStart>=0 && rStart < rows && cStart>=0 && cStart < cols) { ret.push_back({rStart, cStart}); } } } if(ret.size() == sum) { return ret; } } return {{}}; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:17:56

电磁阀的工作原理

1、P端是进气口&#xff0c;也就是输入端&#xff0c;也就是气从这个口进&#xff0c;这个气将被用来控制气缸的伸出和缩回2、P -> A是常通&#xff0c;P -> B是常断3、由于P->A是常通的&#xff0c;所以只要P端进气&#xff0c;A端就会有气&#xff0c;此时气缸的杆是…

作者头像 李华
网站建设 2026/5/3 0:04:04

女装标号、男装量体:美国服装尺码差异背后的产业与消费逻辑

为什么美国销售的女装按标号尺寸表示大小&#xff0c;而男装却直接采用测量尺寸呢&#xff1f;女装标号、男装量体&#xff1a;美国服装尺码差异背后的产业与消费逻辑美国服装市场里女装用标号&#xff08;如 0、2、4 号或 S、M、L&#xff09;&#xff0c;男装却直接标注测量尺…

作者头像 李华
网站建设 2026/5/3 4:29:06

CMS站群系统在实际项目中解决的,往往不是“建站问题”

在很多讨论中&#xff0c;cms站群系统 常常被理解为“为了多建几个站”。 但在实际项目中&#xff0c;它真正解决的&#xff0c;往往并不是建站本身&#xff0c;而是后期无法规模化的问题。 这也是为什么&#xff0c;只有在项目做到一定阶段之后&#xff0c;才会真正意识到 cm…

作者头像 李华
网站建设 2026/5/2 21:15:07

基于可视分析技术的深度学习模型构建与优化【附源码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 成品或定制&#xff0c;查看文章底部微信二维码 &#xff08;1&#xff09;多层级可视化的深度学习模型构建体系 面对深度学习…

作者头像 李华
网站建设 2026/5/2 15:53:18

基于深度学习实现透过动态厚散射介质成像

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅ 成品或定制&#xff0c;查看文章底部微信二维码&#xff08;1&#xff09;动态厚散射介质传播模型的建立与散斑数据生成透过散射…

作者头像 李华
网站建设 2026/5/2 14:04:19

小程序毕设选题推荐:基于springboot+微信小程序的乐器宣传平台乐器维修保养系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华