对于任意 m*n 矩阵,将 1~m*n 的数字按照螺旋规则在矩阵中排列。

如 m=3,n=3,期望结果为:

  1. [
  2. [ , , ],
  3. [ , , ],
  4. [ , , ]
  5. ]

以下代码支持方阵以及非方阵。

code:

  1. # coding=utf-
  2. import numpy
  3.  
  4. flag=
  5. pos_x=
  6. pos_y=
  7. def inc(pos_x,pos_y,row,col):
  8. if(-<pos_x<row and -<pos_y<col):
  9. return True
  10. else:
  11. return False
  12. def gen(row,col):
  13. global flag
  14. global pos_x
  15. global pos_y
  16. rowbox=[]
  17. for i in range(col):
  18. rowbox.append()
  19. data=[]
  20. for i in range(row):
  21. data.append(rowbox)
  22. x = numpy.array(data)
  23. for i in range(,row*col+):
  24. while():
  25. if(flag==):
  26. if(inc(pos_x,pos_y,row,col) and x[pos_x][pos_y]==):
  27. x[pos_x][pos_y]=i
  28. pos_y=pos_y+
  29. break
  30. else:
  31. pos_y=pos_y-
  32. pos_x=pos_x+
  33. flag=
  34. if(flag==):
  35. if(inc(pos_x,pos_y,row,col) and x[pos_x][pos_y]==):
  36. x[pos_x][pos_y]=i
  37. pos_x=pos_x+
  38. break
  39. else:
  40. pos_x=pos_x-
  41. pos_y=pos_y-
  42. flag=
  43. if(flag==):
  44. if(inc(pos_x,pos_y,row,col) and x[pos_x][pos_y]==):
  45. x[pos_x][pos_y]=i
  46. pos_y=pos_y-
  47. break
  48. else:
  49. pos_y=pos_y+
  50. pos_x=pos_x-
  51. flag=
  52. if(flag==):
  53. if(inc(pos_x,pos_y,row,col) and x[pos_x][pos_y]==):
  54. x[pos_x][pos_y]=i
  55. pos_x=pos_x-
  56. break
  57. else:
  58. pos_y=pos_y+
  59. pos_x=pos_x+
  60. flag=
  61. return x
  62.  
  63. # m*n Matrix
  64. m=
  65. n=
  66. print(gen(m,n))

输出

  1. [[ ]
  2. [ ]
  3. [ ]]

python 生成螺旋矩阵的更多相关文章

  1. 【python】Leetcode每日一题-螺旋矩阵2

    [python]Leetcode每日一题-螺旋矩阵2 [题目描述] 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . ...

  2. leetcode-Spiral Matrix II 螺旋矩阵2之python大法好,四行就搞定,你敢信?

    Spiral Matrix II 螺旋矩阵 Given an integer n, generate a square matrix filled with elements from 1 to n2 ...

  3. Python实现打印螺旋矩阵功能的方法

    Python实现打印螺旋矩阵功能的方法 本文实例讲述了Python实现打印螺旋矩阵功能的方法.分享给大家供大家参考,具体如下: 一.问题描述 输入N, 打印 N*N 螺旋矩阵 比如 N = 3,打印: ...

  4. 【python】Leetcode每日一题-螺旋矩阵

    Leetcode每日一题-螺旋矩阵 [题目描述] 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素. 示例1: 输入:matrix = [[1,2,3], ...

  5. [转]numpy线性代数基础 - Python和MATLAB矩阵处理的不同

    转自:http://blog.csdn.net/pipisorry/article/details/45563695 http://blog.csdn.net/pipisorry/article/de ...

  6. NOIP2014-普及组复赛-第三题-螺旋矩阵

    题目描述 Description 一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵 ...

  7. 使用 JS 输出螺旋矩阵

    关于螺旋矩阵 这是我曾经遇到过的面试题,在 LeetCode 上找到了题目的原型,难度中等.题目描述如下: 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中 ...

  8. 螺旋矩阵 java实现(待消化)

    import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/4 17:13 * @description ...

  9. 深度学习实践-物体检测-faster-RCNN(原理和部分代码说明) 1.tf.image.resize_and_crop(根据比例取出特征层,进行维度变化) 2.tf.slice(数据切片) 3.x.argsort()(对数据进行排列,返回索引值) 4.np.empty(生成空矩阵) 5.np.meshgrid(生成二维数据) 6.np.where(符合条件的索引) 7.tf.gather取值

    1. tf.image.resize_and_crop(net, bbox, 256, [14, 14], name)  # 根据bbox的y1,x1,y2,x2获得net中的位置,将其转换为14*1 ...

随机推荐

  1. php 获取城市ip

    /** * 获取ip城市信息 * CreateBy XueSong * @param string $ip * @return array|bool|mixed */ function getCity ...

  2. Graphite简要教程

    转载自DevOps实战:Graphite监控上手指南 英文原文Getting Started with Monitoring using Graphite 英文原文Google快照 作者 Frankl ...

  3. github骚操作

    限制搜索 in关键词限制搜索范围 命令 说明 xxx in:name 项目名包含xxx的 xxx in:description 项目描述包含xxx的 xxx in:readme 项目的readme文件 ...

  4. 服务返回的json数据过大,nginx无法返回给client

    现象:请求同样的服务器,N多个接口中,只有一个接口未返回:从日志看,请求已到后端服务,并返回 解决方案:配置nginx缓冲大小 ###Nginx的缓冲区的大小 proxy_buffer_size 5m ...

  5. .Net下二进制形式的文件存储与读取

    .Net下图片的常见存储与读取凡是有以下几种:存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].1.参数是图片路径:返回 ...

  6. python+django学习三

    在这个网站看https://sshwsfc.github.io/xadmin/     xadmin结果一堆的坑,文档找不到界面,dome登陆就报错permission denied for rela ...

  7. Java日志规范(转载)

    Overview 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是 ...

  8. easyUi 的form和validate组件

    以下代码不能运行,只是我在学习过程中记录的笔记,但代码可以用!!! 可以按照需要截取. <%@ page language="java" contentType=" ...

  9. poi的基本导入

    一.获取列的值 private String getCell(Cell cell){ if(null == cell){ return ""; } try{ cell.setCel ...

  10. TensorFlow C++接口编译和使用

    部分内容from: Tensorflow C++ 从训练到部署(1):环境搭建 在之前的编译中,已经编译好了tensorflow_pkg相关的wheel.现在有一个需求,需要按照C++的代码进行模型加 ...