LeetCode第54题之Spiral Matrix
来源:互联网 发布:同性电影推荐知乎 编辑:程序博客网 时间:2024/04/19 11:55
这题的长和宽有可能不等,所以有可能出现某一圈中有上边没有下边或者有右边没有左边的情况,因此在代码中我在相应位置加入了两个if语句来判断是否是上面的情况(某一圈中有上边没有下边或者有右边没有左边)。
C++代码:
#include <iostream>#include <vector>using namespace std;class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> res; int m = matrix.size(); if (0 == m) return res; int n = matrix[0].size(); //循环的圈数 int circle = (min(m, n)+1)/2; for(int i=0;i<circle;++i) { //上边 for (int j=i;j<n-i;++j) res.push_back(matrix[i][j]); //右边 for (int j=i+1;j<m-i;++j) res.push_back(matrix[j][n-i-1]); //下边(如果该圈下边的行标大于上边的行标) if (m-i-1>i) { for ( int j=n-i-2;j>=i;--j) res.push_back(matrix[m-i-1][j]); } //左边(如果该圈左边的列标小于右边的列标) if (i<n-i-1) { for (int j=m-i-2;j>i;--j) res.push_back(matrix[j][i]); } } return res; }};int main(){ Solution s; int k = 1; vector<vector<int>> vv; vector<int> v_tmp; /*v.push_back(7); vv.push_back(v); v[0] = 9; vv.push_back(v); v[0] = 6; vv.push_back(v);*/ /*for (int i=0;i<3;++i) { vector<int> v_tmp; for (int j=0;j<5;++j) { v_tmp.push_back(k); ++k; } vv.push_back(v_tmp); }*/ /*for (int i=0;i<5;++i) { vector<int> v_tmp; for (int j=0;j<3;++j) { v_tmp.push_back(k); ++k; } vv.push_back(v_tmp); }*/ for (int i=0;i<2;++i) { vector<int> v_tmp; for (int j=0;j<3;++j) { v_tmp.push_back(k); ++k; } vv.push_back(v_tmp); } vector<int> res = s.spiralOrder(vv); for (int i=0;i<res.size();++i) { cout<<res[i]<<'\t'; } cout<<endl; return 0;}
0 0
- LeetCode第54题之Spiral Matrix
- 【leetcode】第54题 Spiral Matrix 题目+解析+代码
- leetcode之Spiral Matrix
- LeetCode之Spiral Matrix
- LeetCode之Spiral Matrix
- leetcode之Spiral Matrix
- 【Leetcode】之 Spiral Matrix
- [leetcode 54] Spiral Matrix
- [LeetCode 54]Spiral Matrix
- Spiral Matrix - LeetCode 54
- leetcode 54 : Spiral Matrix
- Leetcode #54 Spiral Matrix
- Leetcode#54||Spiral Matrix
- 【leetcode】【54】Spiral Matrix
- LeetCode 54 - Spiral Matrix
- 【LeetCode-54】Spiral Matrix
- LeetCode 54 Spiral Matrix
- LeetCode 54 Spiral Matrix
- win32版QQ隐藏功能,气泡消息显示详细时间
- Android刮彩票效果
- 10+资深软件架构师谈计算机专业——填高考志愿必读
- Android开发-layout布局相关属性总结
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- LeetCode第54题之Spiral Matrix
- iOS适配那些事
- ARC基本原理
- 初学MVP
- Java下载文件,文件名中文乱码问题
- Hibernate环境框架搭建
- HDOJ 3923 Invoker
- 使用 Intel HAXM 为 Android 模拟器加速,媲美真机
- android开发—第一步:android开发环境搭建