**LeetCode 54. Spiral Matrix
来源:互联网 发布:icmp协议的ip端口号 编辑:程序博客网 时间:2024/04/29 17:13
https://leetcode.com/problems/spiral-matrix/
水题做成这个样子真是说不过去,,
四个变量控制,两个控制左右范围,另个控制上下范围
两种特殊情况,只有一行和一列,因为push_back的时候其实只是考虑了行或者列的情况没有综合考虑 所以容易重复
#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <vector>#include <map>#include <iostream>using namespace std;class Solution {public: vector<int> spiralOrder( vector<vector<int> >& matrix) { vector <int> ret; if(matrix.size() == 0) return ret; if(matrix.size() == 1)return matrix[0]; int left = 0, right = matrix[0].size(),hang=matrix.size(), h0=0; while(ret.size() < matrix.size()*matrix[0].size()) { //up for(int i=left;i<right;i++) ret.push_back(matrix[h0][i]); if(ret.size() >= matrix.size()*matrix[0].size() ) break; //right for(int i=h0+1;i<hang;i++) ret.push_back(matrix[i][right-1]); if(ret.size() >= matrix.size()*matrix[0].size() ) break; //down for(int i=right-2;i>=left;i--) ret.push_back(matrix[hang-1][i]); if(ret.size() >= matrix.size()*matrix[0].size() ) break; //left for(int i=hang-2;i>h0;i--) ret.push_back(matrix[i][left]); left ++; right --; hang --; h0++; } return ret; }};int main() { //freopen("54.txt", "r", stdin); int n,m, in; while(cin >> n >> m ){ vector < vector<int> > mx; for(int i=0;i<n;i++) { vector <int> ivec; for(int j=0;j<m;j++) { cin >> in; ivec.push_back(in); } mx.push_back(ivec); } Solution s; vector <int> ans = s.spiralOrder(mx); for(int i=0;i<ans.size();i++) cout << ans[i] << ", "; cout << endl; } return 0;}
0 0
- 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
- [leetcode] 54. Spiral Matrix
- leetcode 54. Spiral Matrix
- 54. Spiral Matrix LeetCode
- 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
- Make VLC player support polarized 3D.让VLC播放器支持偏振3D效果。
- 16初出茅庐B题
- Codeforces-Edu6-C.Pearls in a Row
- 数据结构总结,指针
- 16初出茅庐C题
- **LeetCode 54. Spiral Matrix
- 字符集的初步认识
- 16初出茅庐D题
- 16初出茅庐E题
- cookieless domain
- 16初出茅庐F题
- ActionBar研究日志
- iframe跨域通信方案
- LeetCode 59. Spiral Matrix II