LeetCode-54-Spiral Matrix(矩阵/模拟/递归)-Medium
来源:互联网 发布:php常用的正则表达式 编辑:程序博客网 时间:2024/06/10 14:41
题目理解:
将一维或二维数组中的元素按顺时针放向进行打印;
解题分析:
1. 模拟;
2. 递归:
1)每次重新计算最开始的左上初始点;
2)然后依此遍历最上一行,最右一列,最后一行,以及最左一行;
3)注意避免重复遍历,处理好边界问题;
解题代码:
class Solution {private: void process(vector<vector<int>> &m,int _row, int _col, int _initR, int _initC, vector<int> &ans){ int row=_row; int col=_col; int initR=_initR; int initC=_initC; if(row<=0 || col<=0){ return; } for(int i=0; i<col; i++){ ans.push_back(m[initR][initC+i]); } if(row<=1){ return; } for(int i=1; i<row; i++){ ans.push_back(m[initR+i][initC+col-1]); } if(col<=1){ return; } for(int i=1; i<col; i++){ ans.push_back(m[initR+row-1][initC+col-1-i]); } for(int i=1; i<row-1; i++){ ans.push_back(m[initR+row-1-i][initC]); } row-=2; col-=2; initR+=1; initC+=1; process(m, row, col, initR, initC, ans); }public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> ans; int rowSize=matrix.size(); cout<<"rowSize= "<<rowSize<<endl; if(rowSize==0){ return ans; } int colSize=matrix[0].size(); cout<<"colSie= "<<colSize<<endl; if(colSize==0){ return ans; } process(matrix, rowSize, colSize, 0, 0, ans); return ans; }};
0 0
- LeetCode-54-Spiral Matrix(矩阵/模拟/递归)-Medium
- [Leetcode 54, Medium] Spiral Matrix
- 【LeetCode】(54)Spiral Matrix(Medium)
- LeetCode-54-Spiral Matrix 模拟
- LeetCode 54.Spiral Matrix (Medium)
- LeetCode 59.Spiral Matrix || (Medium)
- Medium 54题 Spiral Matrix
- 【LeetCode】(59)Spiral Matrix II(Medium)
- LeetCode-59-Spiral Matrix II(Array)-Medium
- Leetcode 54. Spiral Matrix (Medium) (cpp)
- Leetcode 59. Spiral Matrix II (Medium) (cpp)
- Leetcode 54. Spiral Matrix (Medium) (java)
- Leetcode 59. Spiral Matrix II (Medium) (java)
- LeetCode Spiral Matrix(螺旋矩阵)
- [leetcode 54] Spiral Matrix
- [LeetCode 54]Spiral Matrix
- Spiral Matrix - LeetCode 54
- leetcode 54 : Spiral Matrix
- 9.6 聚合
- 9.7 迭代
- 9.8 查找表
- 9.9 空值
- javascript document.compatMode
- LeetCode-54-Spiral Matrix(矩阵/模拟/递归)-Medium
- 9.10.2 谓语前推
- 9.10.3 物化视图
- 【点分治】BZOJ 1468:Tree
- 9.10.6 索引
- 9.11 子查询因子化
- Errors running builder 'DeploymentBuilder' on project '工程名'
- PowerDesigner生成Excel(仅数据库版)
- 10.1 标准用法