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

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 {{}}; } };
http://www.jsqmd.com/news/263186/

相关文章:

  • 2026年辽宁可靠的隐形车衣品牌哪个好,汽车车衣/车衣改色/隐形车衣/贴太阳膜/贴车衣/太阳膜,隐形车衣门店推荐榜单 - 品牌推荐师
  • 2026年市面上正规的氟塑料泵源头厂家联系方式,衬氟氟塑料泵/耐腐蚀磁力泵/化工离心泵,氟塑料泵供应商联系电话 - 品牌推荐师
  • 医疗影像用MONAI分割边界更精细
  • Day45 >> 115、不同的子序列 + 583. 两个字符串的删除操作 + 72. 编辑距离
  • Vim中复制内容到系统剪贴板
  • Spring Cloud 集成 Nacos,全面的配置中心与服务发现解决方案
  • spring boot中异常日志输出:log.error(“【文件上传】失败,{},{}“, endpoint, method, e);最后的e是异常对象,会输出堆栈信息
  • 深入解析:JMeter的基本使用与性能测试
  • 科研 / 工业采购必看:国产高端仪器品牌 + 上市公司实力盘点 - 品牌推荐大师1
  • 禁止win11自动更新,禁止windows更新的工具软件方法教程攻略
  • 从城市运管到灾害救援:2026年好用的应急调度系统场景推荐 - 速递信息
  • 基于多鱼眼的视觉SLAM系统(毕业论文)
  • Nginx http模块配置详解
  • Nginx http模块配置详解
  • Polar靶场web 随写笔记 - 指南
  • Nginx 虚拟主机 Server块配置详细解读
  • 变量的使用
  • ROS1 noetic 中将 Unitree G1 基于 Gazebo/RViz 关节联动【使用一个launch文件启动】
  • Java Web 核心全解析 - 实践
  • 写论文软件哪个好?实测揭秘!宏智树 AI 凭 “真研究” 实力出圈
  • 什么是 CMS 站群系统?以及它在百度 SEO 中的真实作用
  • 5 款 AI 写论文哪个好?实测宏智树 AI:毕业论文的全能型学术助手
  • 2026年周边优秀的汽车维修经销商怎么选择,客车轮胎/汽车保养/货车轮胎/轿车保养/汽车检测,汽车维修批发哪个好 - 品牌推荐师
  • CMS站群系统在实际项目中解决的,往往不是“建站问题”
  • 2026最新最全Java 面试题大全(整理版)2000+ 面试题附答案详解
  • 2026年市场有名的包衣机定做厂家怎么选择,高效湿法制粒机/离心造粒包衣机/微孔高效包衣机,包衣机供货商口碑推荐 - 品牌推荐师
  • 全网最全9个AI论文工具,专科生轻松搞定论文写作!
  • 租车新选择:2026年口碑爆棚的租车公司推荐,租赁/自驾租车/租车/会展包车/包车/企业租车/跨境包车,租车公司选哪家 - 品牌推荐师
  • web入门91-100
  • Splay/LCT