54.螺旋读取数组
来源:互联网 发布:element linux 编辑:程序博客网 时间:2024/06/17 06:09
Spiral Matrix
问题描述:
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
For example,
Given the following matrix:
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]
知识补充:
zip函数
a = [1,2,3]b = [4,5,6]ab = zip(a,b)>>>[(1,4),(2,5),(3,6)]//生成这样的元组zip(*ab)>>>[[1,2,3],[4,5,6]]//相当于变回原样
数组逆序
a = [[1,2,3],[4,5,6]]a[::-1]>>>[[4,5,6],[1,2,3]//相当于把数组按逆序重组
测试代码(c++):
class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { if (matrix.empty()) return {}; vector<int> result; int right=matrix[0].size()-1,left=0,up=0,down=matrix.size()-1; while(true) { for(int i=left;i<=right;i++) { result.push_back(matrix[up][i]); } if(up==down) break; up++; for(int i=up;i<=down;i++) { result.push_back(matrix[i][right]); } if(right==left) break; right--; for(int i=right;i>=left;i--) { result.push_back(matrix[down][i]); } if(up==down) break; down--; for(int i=down;i>=up;i--) { result.push_back(matrix[i][left]); } if(right==left) break; left++; } return result; }};
性能:
参考答案(python):
return matrix and list(matrix.pop(0)) + self.spiralOrder(zip(*matrix)[::-1])
性能:
阅读全文
0 0
- 54.螺旋读取数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 螺旋数组
- 机器学习算法总结--线性回归和逻辑回归
- kafka存储机制
- AIX6 sudo权限问题
- HDU6098(做了一个小时的水题)
- 代码干货 | HTML表单控件绑定
- 54.螺旋读取数组
- 单向链表和双向链表
- iOS-ReactiveObjC 的基本使用(二)
- Verilog中同步复位和异步复位比较
- Java:TreeSet定制排序后无法被对象输出流写入到文件
- iOS 获取设备的各种信息
- mysql批量提交数据实例
- 使用Hexo搭建个人博客
- 安卓视频录制、调用系统音乐、视频播放器所遇问题及解决(包含7.0兼容问题)