LeetCode54——Spiral Matrix
来源:互联网 发布:举报网络诈骗怎么写 编辑:程序博客网 时间:2024/05/17 00:59
LeetCode54——Spiral Matrix
还是用图来表述:
从左上开始,按照箭头的顺序,进行4个for循环,完成一圈,一共用count = min(row,col)/2 圈。
注意最后的红色箭头,如果行数和列数中较小的数是奇数,就会出现上述情况。
这个时候咱们在最后补上就好
代码:
class Solution {public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> result;if(matrix.empty()) return result;int m = matrix.size();//m行int n = matrix[0].size();//n列int count = min(m,n)/2;//count 圈int mod = min(m, n) % 2;for (int i = 0; i < count; i++){for (int j = i; j < n - i - 1; j++){result.push_back(matrix[i][j]);//从左到右}for (int j = i; j <m-1-i ; j++){result.push_back(matrix[j][n-1-i]);//从上到下}for (int j = n-i-1; j >=i+1 ;j--){result.push_back(matrix[m-i-1][j]);//从右到左}for (int j = m-1-i;j>=i+1;j--){result.push_back(matrix[j][i]);//从下到上}}if (mod == 1){if (n == m)//相当于方阵,需要在中间补上result.push_back(matrix[count][count]);else if (n > m){for (int j = count; j < n - count; j++)result.push_back(matrix[count][j]);}else{for (int j = count;j<m-count;j++)result.push_back(matrix[j][count]);}}return result;}};
0 0
- LeetCode54——Spiral Matrix
- Leetcode54 Spiral Matrix
- [leetcode54] Spiral Matrix
- leetcode54 Spiral Matrix
- leetcode54. Spiral Matrix
- Leetcode54. Spiral Matrix
- LeetCode54/59 Spiral Matrix I/II
- leetcode54-Spiral Matrix(打印蛇形矩阵)
- LeetCode——Spiral Matrix
- leetcode——Spiral Matrix
- leetcode——Spiral Matrix
- Algorithms—54.Spiral Matrix
- 剑指offer 面试题20:顺时针打印矩阵及其变形(LeetCode54. Spiral Matrix旋转矩阵) 题解
- LeetCode——Spiral Matrix II
- leetcode 054 —— Spiral Matrix
- leetcode 059 —— Spiral Matrix II
- LeetCode59——Spiral Matrix II
- leetcode题集——spiral-matrix-ii
- Ubuntu 12.04下修改host name 和终端显示
- 谷歌公布惊人股票回购计划,股价一小时疯涨10%
- git使用方法
- 虚拟机笔记一(网络配置)
- Oracle 创建序列自增
- LeetCode54——Spiral Matrix
- 程序员需要具备的基本技能
- python下的可变对象与不可变对象
- C++输入流cin方法详解
- Login
- C语言二维数组的内存结构图与Java二维数组的内存结构图
- Linux下安装docker
- Android 设置Settings源码导入eclipse
- 修改Ubuntu默认运行级别,启动字符界面