def bsm(n):
a = [[0]*n for x in range(n)]
p = 0
q = n-1
t = 1
while p < q:
for i in range(p,q):
a[p][i] = t
t += 1 for i in range(p,q):
a[i][q] = t
t += 1 for i in range(q,p,-1):
a[q][i] = t
t += 1 for i in range(q,p,-1):
a[i][p] = t
t += 1
p += 1
q -= 1
if q == p:
a[p][p] = t
return a

这个是一个函数,返回一个回形数组

具体的思路是,用p记录左上角的坐标,用q记录右下角的坐标,一圈一圈的向矩阵的里面赋值,最终得到一个回形矩阵,最后的一个判断  if p==q  是因为奇数和偶数不不一样引起的差异,如果是奇数经历了while循环后,最后中间还有一个值是空的,如果是偶数的话,不存在p == q的情况,因为每次循环p都加1,q都减一,岔开了。

回形矩阵--python的更多相关文章

  1. 2.python算法之回形矩阵

    代码: #!/usr/bin/env python # encoding: utf-8 """ @author: 侠之大者kamil @file: 2.回形矩阵.py @ ...

  2. Python实现顺时钟回形矩阵

    无意间在网上看到了一个面试题是,写出一个回形矩阵.实现的效果大致如下: [ 1,   2,   3,   4, 5] [16, 17, 18, 19, 6] [15, 24, 25, 20, 7] [ ...

  3. 顺时针打印矩阵(python)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  4. 19.顺时针打印矩阵(python)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  5. 创建一个任意大小的全色矩阵 python

    img = np.zeros((112,112,3))#cv2.imread('F:/project/Breast/InBreast/INBreast/outimgpatch/allnocalcifi ...

  6. 回形数字矩阵(Java)

    将矩阵从里到外分为多层,每一层都是一个口字型数字序列,方向都是顺时针/逆时针,由此我们可以将问题分解为相同的子问题来解决 回形矩阵概述 ☃ 回形矩阵有n行n列 ☃ 数字按顺时针或者逆时针递增 **使用 ...

  7. python3列表

    Python3 列表 list python的矩阵 python中矩阵可以用双层列表表示 Python列表脚本操作符 len([1, 2, 3]) 3 长度 [1, 2, 3] + [4, 5, 6] ...

  8. 机器学习入门KNN近邻算法(一)

    1 机器学习处理流程: 2 机器学习分类: 有监督学习 主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的表示的预测 1 分类 分类计数预测的数据对象是离散的.如短信是否为垃圾短信,用 ...

  9. 【题解】长度为素数的路径个数-C++

    Description 对于正整数n (3≤n<20),可以画出n阶的回形矩阵.下面画出的分别是3阶的,4阶的和7阶的回形矩阵: 对于n阶回形矩阵,从左上角出发,每步可以向右或向下走一格,走2* ...

随机推荐

  1. phpunit 单元测试之代码覆盖率

    最近团队在不断完善项目中的单元测试用例,会用到代码覆盖率分析,本来以为 homestead 应该默认安装了 xdebug ,所以使用 phpunit --coverage-html ./tests/c ...

  2. 【Leetcode】【Easy】Plus One

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  3. python入门20 导入模块(引包)

    1 引包: import module  或  import module.module1  或 from module import module1,module2...等 2 import xx ...

  4. python:递归函数

    1,初识递归函数 1)什么是递归函数? 在函数中自己调用自己叫做递归函数 递归函数超过一定程度会报错.---RecursionError: maximum recursion dep th excee ...

  5. BZOJ3437:小P的牧场(斜率优化DP)

    Description 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制 ...

  6. codeforces 676C

    C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard ...

  7. Mac下更新Vim到最新版本

    目前,Mac内置的Vim是7.3版本的,而且还缺少很多功能,下面介绍如何通过源码安装更新最新版本的Vim,同时保留系统内置的Vim. # 下载Vim源代码 git clone https://gith ...

  8. Navicat Premium 连接Oracle 数据库之配置

    Navicat Premium连接Oracle 数据库之配置 1.Oracle数据库服务器下载 Oracle官方网站下载数据库最新版本:http://www.oracle.com/technetwor ...

  9. iOS之UITextField输入错误的震动动画

    //左右震动效果 - (void)shake:(UIView *)view { CGRect frame = view.frame; CAKeyframeAnimation *shakeAnimati ...

  10. ETO的公开赛T5《猎杀蓝色空间号》题解

    这道题别看题面这么长,其实题意很简单 就是让你求从起点开始的最长合法区间 合法的要求有两个:兜圈子和直飞 且这两个条件相互独立 (也就是说兜圈子的末尾不会对下面可能出现的直飞造成影响) 举个例子: 1 ...