Python实现打印螺旋矩阵功能的方法
本文实例讲述了Python实现打印螺旋矩阵功能的方法。分享给大家供大家参考,具体如下:
一、问题描述
输入N, 打印 N*N 螺旋矩阵
比如 N = 3,打印:
1 2 3
8 9 4
7 6 5
N = 4,打印:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
二、思路
常规法是不断的对数据边界进行判断会很复杂,不妨考虑通过递归的解决每一层的数字。
三、代码
#coding:utf-8
n=int(raw_input('>'))
#初始化数组
arr=[[0]*nforiinrange(n)]
#递归解决
defdfs(arr, x, y, start, n):
ifn<=0:return0
ifn==1:
arr[x][y]=start
return0
#up
foriinrange(n):
arr[x][y
i]=start
start
=1
#right
foriinrange(n-1):
arr[x 1 i][y
n-1]=start
start
=1
#down
foriinrange(n-1):
arr[x n-1][y
n-2-i]=start
start
=1
#left
foriinrange(n-2):
arr[x
n-2-i][y]=start
start
=1
dfs(arr,x 1,y 1,start,n-2)
a=dfs(arr,0,0,1,n)
#格式化输出print
l=len(str(n*n)) 1
format=('%' str(l) 'd')*n
fortmpinarr:
printformat%tuple(tmp)
运行结果:


Python实现打印螺旋矩阵功能的方法的更多相关文章
- python 语言打印直角三角形的几种方法
方法1:全部打印语句 print('*') print('**') print('***') print('****') 方法2:简单使用循环 for i in range(5): print('*' ...
- 使用Python绘制彩色螺旋矩阵
from turtle import* #导入turtle库 bgcolor("black") #设置画布颜色为黑色 speed(0) #设置画笔绘制速度 colors=[&quo ...
- leetcode-Spiral Matrix II 螺旋矩阵2之python大法好,四行就搞定,你敢信?
Spiral Matrix II 螺旋矩阵 Given an integer n, generate a square matrix filled with elements from 1 to n2 ...
- LeetCode 54. 螺旋矩阵(Spiral Matrix) 剑指offer-顺时针打印矩阵
题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, ...
- python实现矩阵乘法的方法
python实现矩阵乘法的方法 本文实例讲述了python实现矩阵乘法的方法.分享给大家供大家参考. 具体实现方法如下: def matrixMul(A, B): res = [[0] * l ...
- 【python】Leetcode每日一题-螺旋矩阵2
[python]Leetcode每日一题-螺旋矩阵2 [题目描述] 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . ...
- 【python】Leetcode每日一题-螺旋矩阵
Leetcode每日一题-螺旋矩阵 [题目描述] 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素. 示例1: 输入:matrix = [[1,2,3], ...
- python快速生成注释文档的方法
python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...
- python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
随机推荐
- 认识配置文件schema.xml(managed-schema)
1.schema文件是在SolrConfig中的架构工厂定义,有两种定义模式: 1.1.默认的托管模式: solr默认使用的就是托管模式.也就是当在solrconfig.xml文件中没有显式声明< ...
- GCD实战之多个网络请求的并发
// 创建信号量 dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); // 创建全局并行 dispatch_queue_t q ...
- mysql和oracle的语法差异(网络收集)
oracle没有offet,limit,在mysql中我们用它们来控制显示的行数,最多的是分页了.oracle要分页的话,要换成rownum. oracle建表时,没有auto_increment,所 ...
- Mongodb的聚合和管道
MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果. aggregate() 方法 MongoDB中聚合的方法使用agg ...
- 根据IP 自动识别国家和城市
https://www.jianshu.com/p/1b1a018ae729 根据IP 自动识别国家和城市
- BZOJ1079 [SCOI2008]着色方案[组合计数DP]
$有a_{1}个1,a_{2}个2,...,a_{n}个n(n<=15,a_{n}<=5),求排成一列相邻位不相同的方案数.$ 关于这题的教训记录: 学会对于复杂的影响分开计,善于发现整体 ...
- 在linux 下安装mysql
1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6.33,通用版,linux下64位 也可 ...
- SpringBoot项目中,异常拦截
SpringBoot自带异常拦截@ControllerAdvice 1.创建一个SellerExceptionHandler类打上@ControllerAdvice标签 @ControllerAdvi ...
- B/S文件上传下载解决方案
需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...
- CF1213F Unstable String Sort
题目链接 问题分析 题目实际上是一堆大于等于的约束.观察这\(2n-2\)个约束.第一组可以将要求的排成一个不降的序列,然后第二组就是在第一组的基础上再添加条件. 不妨设第一组生成的不降序列是\(\{ ...