https://oj.leetcode.com/problems/spiral-matrix/

螺旋矩阵,逆着转,输出矩阵中的元素。

在纸上模仿,然后记左上角(l1,l2)右上角(l1,r2),左下角(p1,l2)右下角(p1,r2).

然后4个for循环从一个点到另一个点位置遍历。

while控制总的。

当在一次遍历中,没有要输出的点,说明遍历结束。

class Solution {
public:
vector<int> spiralOrder(vector<vector<int> > &matrix) {
vector<int> ans;
int row = matrix.size();
if(row == )
return ans;
if(row ==)
{
for(int i = ;i<matrix[].size();i++)
ans.push_back(matrix[][i]);
return ans;
}
int col = matrix[].size(); int l1,l2,r2,p1;
l1 = ;
l2 = ;
r2 = col - ;
p1 = row -; while()
{
int i;
if(l2>r2)
break;
for(i = l2; i <= r2; i++)
ans.push_back(matrix[l1][i]); if(l1+>p1)
break;
for(i = l1+;i<= p1;i++)
ans.push_back(matrix[i][r2]); if(r2-<l2)
break;
for(i = r2-;i>=l2;i--)
ans.push_back(matrix[p1][i]); if(p1-<l1+)
break;
for(i = p1-;i>=l1+;i--)
ans.push_back(matrix[i][l2]);
l1++;
l2++;
r2--;
p1--;
}
return ans;
}
};

最新文章

  1. ABP源码分析五:ABP初始化全过程
  2. 浅析初等贪吃蛇AI算法
  3. (原创)用Receiver和SystemService监听网络状态,注册Receiver的两种方式
  4. Week1项目报告
  5. 如何设置一个严格30分钟过期的Session
  6. iOS-GCD用法
  7. OC2-xml文件解析
  8. spoj LCS
  9. Java精确计算
  10. DataGrid( 数据表格) 组件[9]
  11. COM-TEAM
  12. 纳税服务系统【用户模块之使用POI导入excel、导出excel】
  13. 微信小程序之页面路由
  14. 我的python之路
  15. [Swift]LeetCode16. 最接近的三数之和 | 3Sum Closest
  16. BZOJ5037[Jsoi2014]电信网络——最大权闭合子图
  17. msfvenom生成各类Payload命令
  18. scala-jdbc-scalike操作jdbc数据库
  19. Spring Boot初识(1)-了解Spring Boot
  20. Individual Project-word frequency

热门文章

  1. Python头脑风暴2
  2. Educational Codeforces Round 53 (Rated for Div. 2) C Vasya and Robot 二分
  3. 解决VMware vSphere Client无法连接ESXi虚拟主机方法
  4. install redis and used in golang on ubuntu 14.04
  5. 算法学习记录-查找——折半查找(Binary Search)
  6. java8新特性:接口的默认方法与静态方法
  7. Selenium WebDriver-通过页面标题切换窗口
  8. python - 自动化测试框架 - 测试报告
  9. uiautomatorviewer打不开
  10. 缓存淘汰算法之LFU