python实现螺旋矩阵的填充
来源:互联网 发布:仙剑奇侠传6激活码淘宝 编辑:程序博客网 时间:2024/06/04 19:50
afanty的分析:
关于矩阵(二维数组)填充问题自己动手推推,分析下两个下表的移动规律就很容易咯。
对于螺旋矩阵,不管它是什么鬼,反正就是依次向右、向下、向右、向上移动。
向右移动:横坐标不变,纵坐标加1
向下移动:纵坐标不变,横坐标加1
向右移动:横坐标不变,纵坐标减1
向上移动:纵坐标不变,横坐标减1
代码实现:
#coding=utf-8import numpy'''Author: afantyDate: 2016/6/23'''def helixMatrix(n): '''实现n维螺旋矩阵的填充 :param n:维数 :return:螺旋矩阵 ''' if not isinstance(n,int) or n <= 0: raise ValueError('请输入合适的维数') matrix = numpy.zeros((n,n)) left_top = 0 right_buttom = n-1 number = 1 while left_top < right_buttom: # 向右移动,横坐标不变,纵坐标+1,number+1 i = left_top while i < right_buttom: matrix[left_top][i] = number i += 1 number += 1 # while # 向下移动,纵坐标不变,横坐标+1,number+1 i = left_top while i < right_buttom: matrix[i][right_buttom] = number i += 1 number += 1 #while # 向左移动,横坐标不变,纵坐标-1,number+1 i = right_buttom while i > left_top: matrix[right_buttom][i] = number i -= 1 number += 1 # while # 向上移动,纵坐标不变,横坐标-1,number+1 i = right_buttom while i > left_top: matrix[i][left_top] = number i -= 1 number += 1 # while left_top += 1 right_buttom -= 1 # while if n%2 != 0: matrix[n/2][n/2] = n*n return matrix# end
print helixMatrix(5)输出结果:
[[ 1. 2. 3. 4. 5.] [ 16. 17. 18. 19. 6.] [ 15. 24. 25. 20. 7.] [ 14. 23. 22. 21. 8.] [ 13. 12. 11. 10. 9.]]
0 0
- python实现螺旋矩阵的填充
- 矩阵的螺旋排列 Python实现
- 螺旋矩阵的实现
- 螺旋矩阵的Java实现
- 我的螺旋矩阵实现
- 螺旋矩阵的C实现
- 简单的实现螺旋矩阵
- 飘逸的python - 打印螺旋矩阵
- Python-打印螺旋矩阵
- 简单的螺旋矩阵的实现
- 蛇形矩阵,回环矩阵,数字螺旋矩阵的PHP实现
- n*n螺旋矩阵的实现
- 001螺旋矩阵的java实现
- 螺旋矩阵的两种JAVA实现
- 螺旋矩阵(c实现)
- 螺旋矩阵编程实现
- java 实现螺旋矩阵
- java实现螺旋矩阵
- 视频本地化:使用 Camtasia 同步字幕
- 153. Find Minimum in Rotated Sorted Array
- Android单位
- viewPager滑动监听
- 公共技术点之 Java 反射 Reflection
- python实现螺旋矩阵的填充
- 平台记录部件获取输入控件(Field)
- sass学习--sass的控制命令(进阶篇)
- 如何利用DDMS Allocation Tracker 分析内存使用情况
- Android DrawerLayout的使用
- Verify Preorder Sequence in Binary Search Tree
- java 栈 堆 以及 java变量存储位置
- 安卓多行文本折叠展开效果
- css3属性-webkit-font-smoothing