Spiral Matrix leetcode
来源:互联网 发布:t型匹配网络 ads 编辑:程序博客网 时间:2024/06/07 07:41
Spiral Matrix[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]
如上图所示,本题要求由外向内回折读取matrixYou should return
[1,2,3,6,9,8,7,4,5]
.本题思路是读取一个,删除一个,用了vector的erase函数,删除路径同读取路径相同,分别需要在四角处更新路径方向
AC代码:
</pre><pre name="code" class="cpp">public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> res;if(!matrix.empty()){int m=matrix.size();int n=matrix[0].size();int i=0,j=0;while(!matrix.empty()){res.push_back(matrix[i][j]);if(matrix[i].size()>1)matrix[i].erase(matrix[i].begin()+j);elsematrix.erase(matrix.begin()+i);//此处需要注意,二维数组只有一个元素的时候 需要这样删除if(i==0&&j==0&&matrix.size()==m-1)//第一行去除{j=n-1;m--;}else if(i<m-1&&j==n-1)i++;else if(matrix.size()&&matrix[0].size()==n-1&&j==n-1)//最后一列去除{n--;j=n-1;}else if(i==m-1&&j>0)j--;else if(i==m-1&&j==0&&m>1&&matrix.size()==m-1)//最后一行去除{m--;i=m-1;}else if(i>0&&j==0){i--;}else if(i==0&&j==0&&matrix[0].size()==n-1){//第一列去除if(matrix.size()>1&&matrix[1].size()==n-1)n--;}}}return res;}};
1 0
- [leetcode]Spiral Matrix&&Spiral Matrix II
- Leetcode:Spiral Matrix与Spiral Matrix II
- LeetCode | Spiral Matrix /Spiral Matrix II
- 【Leetcode】【python】Spiral Matrix/Spiral Matrix II
- LeetCode: Spiral Matrix
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix
- [Leetcode] Spiral Matrix II
- LeetCode: Spiral Matrix
- LeetCode : Spiral Matrix II
- [LeetCode] Spiral Matrix II
- [LeetCode] Spiral Matrix
- leetcode 80: Spiral Matrix
- [Leetcode] Spiral Matrix
- [LeetCode]Spiral Matrix
- [LeetCode]Spiral Matrix II
- (巨坑)长期经验总结
- Android中的IntentFilter
- Leetcode-evaluate-reverse-polish-notation
- 【bzoj2456】 mode
- HeadFirstJava——12_序列化和文件的输入/输出
- Spiral Matrix leetcode
- 三点顺序
- PAT--1015. Reversible Primes
- linux第一天学习1
- 22 栈的压入,弹出序列
- Codeforces Round #362 (Div. 2) C.Lorenzo Von Matterhorn
- 以下关于STL的描述中,错误的有
- thinkphp AOP(面向切面编程)
- Linux学习笔记--关机重启及用户登录查看命令