博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Spiral Matrix
阅读量:6567 次
发布时间:2019-06-24

本文共 1305 字,大约阅读时间需要 4 分钟。

The idea is just to add the elements in the spiral order. First the up-most row (u), then the right-most column (r), then the down-most row (d), and finally the left-most column (l). After finishing a row or a column, update the corresponding variable to continue the process.

The code is as follows.

1 class Solution { 2 public: 3     vector
spiralOrder(vector
>& matrix) { 4 if (matrix.empty()) return {}; 5 int m = matrix.size(), n = matrix[0].size(); 6 vector
spiral(m * n); 7 int u = 0, d = m - 1, l = 0, r = n - 1, k = 0; 8 while (true) { 9 // up10 for (int col = l; col <= r; col++) spiral[k++] = matrix[u][col];11 if (++u > d) break;12 // right13 for (int row = u; row <= d; row++) spiral[k++] = matrix[row][r];14 if (--r < l) break;15 // down16 for (int col = r; col >= l; col--) spiral[k++] = matrix[d][col];17 if (--d < u) break;18 // left19 for (int row = d; row >= u; row--) spiral[k++] = matrix[row][l];20 if (++l > r) break;21 }22 return spiral;23 }24 };

 

转载于:https://www.cnblogs.com/jcliBlogger/p/4719962.html

你可能感兴趣的文章
RequireJS进阶(二)
查看>>
我设计的网站的分布式架构
查看>>
linux extract rar files
查看>>
Knockout.Js官网学习(监控属性Observables)
查看>>
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
查看>>
azure之MSSQL服务性能测试
查看>>
Android BitmapFactory.Options
查看>>
前端构建:Less入了个门
查看>>
phonegap(cordova) 自己定义插件代码篇(三)----支付宝支付工具整合
查看>>
linux 批量进行:解压缩某一类压缩文件类型的文件
查看>>
激活modelsim se 10.4 时运行patch_dll.bat不能生成TXT
查看>>
Node.js中针对中文的查找和替换无效的解决方法
查看>>
【Leetcode】Search in Rotated Sorted Array
查看>>
tomcat架构分析(valve源码导读)
查看>>
spring中InitializingBean接口使用理解(转)
查看>>
基于php5.5使用PHPMailer-5.2发送邮件
查看>>
InstallShield 2012 Spring新功能试用(16): Suite/Advanced UI 或 Advanced UI安装程序能在安装时进行输入合法性校验与反馈...
查看>>
C#面试宝典
查看>>
基金项目的英文
查看>>
《软件性能测试与LoadRunner实战教程》喜马拉雅有声图书上线
查看>>