1. 题目

在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始

这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列。

现在,我们以顺时针按螺旋状行走,访问此网格中的每个位置。

每当我们移动到网格的边界之外时,我们会继续在网格之外行走(但稍后可能会返回到网格边界)。

最终,我们到过网格的所有 R * C 个空间。

按照访问顺序返回表示网格位置的坐标列表。

示例 1:
输入:R = 1, C = 4, r0 = 0, c0 = 0
输出:[[0,0],[0,1],[0,2],[0,3]]

示例 2:
输入:R = 5, C = 6, r0 = 1, c0 = 4
输出:[[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3],[0,4],[0,5],
[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[0,2],[4,5],[4,4],[4,3],
[4,2],[4,1],[3,1],[2,1],[1,1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]

提示:
1 <= R <= 100
1 <= C <= 100
0 <= r0 < R
0 <= c0 < C

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/spiral-matrix-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:LeetCode 59. 螺旋矩阵 II && LeetCode 54. 螺旋矩阵

  • 走动的步长每两个方向增加一步,方向每次都换
class Solution {public:vector<vector<int>> spiralMatrixIII(int R, int C, int r0, int c0) {vector<vector<int>> dir = {{0,1},{1,0},{0,-1},{-1,0}};int steps = 1, step, count = 1, k = 0, delta = 0;vector<vector<int>> ans = {{r0,c0}};//初始为1个while(count < R*C){step = steps;//步长while(step--){r0 += dir[k][0];c0 += dir[k][1];if(r0>=0&& r0<R && c0>=0&&c0<C){ans.push_back({r0,c0});// cout << r0 << " " << c0 << endl;count++;}}k = (k+1)%4;//换方向delta++;if(delta%2==0){delta = 0;steps++;//每两次增加步长1格}}return ans;}
};

48 ms 12.4 MB

LeetCode 885. 螺旋矩阵 III相关推荐

  1. 885. 螺旋矩阵 III

    在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始 这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列. 现在,我们以顺时针按螺旋状行走,访问此网格中的每个位置. 每 ...

  2. LeetCode 59. 螺旋矩阵 II LeetCode 54. 螺旋矩阵

    文章目录 1. 题目信息 2. LeetCode 59 解题 3. LeetCode 54. 螺旋矩阵 4.<剑指Offer>面试题29 1. 题目信息 给定一个正整数 n,生成一个包含 ...

  3. LeetCode:螺旋矩阵【54】

    LeetCode:螺旋矩阵[54] 题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [[ 1, 2, 3 ],[ ...

  4. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、​LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵II

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

  5. 螺旋矩阵c++语言_一起刷 leetcode 之螺旋矩阵(头条和美团真题)

    微信公众号:每天晒白牙 关注可了解更多编程知识.问题或建议,请公众号留言;如果你觉得文章对你有帮助,欢迎关注与转发 题目描述 给定一个包含 m*n 个元素的矩阵(m 行,n 列),请按顺时针螺旋顺序, ...

  6. LeetCode 54.螺旋矩阵 - 原地修改

    [LetMeFly]54.螺旋矩阵 - 原地修改 力扣题目链接:https://leetcode.cn/problems/spiral-matrix/ 给你一个 m行 n列的矩阵 matrix,请按照 ...

  7. LeetCode 59. 螺旋矩阵 II

    和54.螺旋矩阵 类似 public static int[][] generateMatrix(int n) {int[][] a = new int[n][n];if(n<1)return ...

  8. Java实现 LeetCode 54 螺旋矩阵

    54. 螺旋矩阵 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], ...

  9. leetcode_885. 螺旋矩阵 III

    目录 一.题目内容 二.解题思路 三.代码 一.题目内容 在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始 这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列. 现 ...

最新文章

  1. lattice diamond 3.7安装破解
  2. 设计模式 - Iterator(迭代器)
  3. struct 类型指针技巧
  4. 群晖使用Linux命令,群晖常用指令
  5. 多亏了Google相册,如何一键释放Android手机上的空间
  6. checkbox 选中_纯CSS修改checkbox复选框样式
  7. Hive - Create TableDrop Table ALTER Table(中)
  8. window.open打开页面并传值,window. location.search遍历获取到的请求链接中的所有参数
  9. 如何在Web App Project 或者 Web Site Project的App_Code 内使用 Profile/ProfileCommon
  10. 5G时代下的移动边缘计算(MEC)探索系列之三
  11. 《循序渐进Oracle:数据库管理、优化与备份恢复》一一1.5 案例与实践分析 ...
  12. win7连接xp共享打印机方法
  13. Java 泛型 <? super T> <? extend T> 的通俗理解
  14. SDH与SONET(整理)
  15. 汇编语言 王爽第二版 总结
  16. 批量修改Excel中的图片大小方法
  17. Nginx基础应用——日志切割
  18. 【0173】推荐6款最好使用的PostgreSQL GUI工具
  19. TypeScript后端http请求
  20. 采用ImageJ+插件批量转换透射电镜ser图像

热门文章

  1. visuall assist x 破解方法
  2. MATLAB中MEX文件的编写与调试
  3. ajax改变json指向,Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)
  4. 驱动框架7——使用gpiolib完成led驱动
  5. VUE 入坑系列 一 双向绑定
  6. linux内核启动以及文件系统的加载过程
  7. LeetCode Longest Common Prefix
  8. [objective-c] 08 - 内存管理
  9. 初学Struts遇到的坑爹问题
  10. javascript 的参数有长度限制吗?一个细节引起的误区