2.python算法之回形矩阵

代码:

#!/usr/bin/env python
# encoding: utf-8
"""
@author: 侠之大者kamil
@file: 2.回形矩阵.py
@time: 2016/3/21 10:51
"""
def sankeMatric(n):
    m = [[0] * n for x in range(n)]
    p = 0
    q = n-1
    t = 1
    while p < q:
        for i in range(p,q):
            m[p][i] = t
            t +=1
        for i in range(p,q):
            m[i][q] = t
            t +=1
        for i in range(q,p,-1):
            m[q][i] = t
            t +=1
        for i in range(q,p,-1):
            m[i][p] = t
            t +=1
        p +=1
        q -=1
    if p ==q:
        m[p][p] = t
    return m
b = int(input("please input the number:"))
a = sankeMatric(b)
for l in a:
    print(l)

def func():
    pass

class Main():
    def __init__(self):
        pass

if __name__ == ‘__main__‘:
    pass
时间: 2024-08-06 17:53:48

2.python算法之回形矩阵的相关文章

Python实现顺时钟回形矩阵

无意间在网上看到了一个面试题是,写出一个回形矩阵.实现的效果大致如下: [ 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] 因为日常都是使用Python,刚开始觉得使用list的append方法就可以做出来,动手一下发现还是不行的.后来,觉得应该先根据参数容量制作一个list,用list的替换方法来做替换.处理的过程中,还是发现有很多思维断掉的

python 算法

在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数.<数据结构>也会花大量篇幅讲解排序.之前一段时间,由于需要,我复习了一下排序算法,并用Python实现了各种排序算法,放在这里作为参考. 最简单的排序有三种:插入排序,选择排序和冒泡排序.这三种排序比较简单,它们的平均时间复杂度均为O(n^2),在这里对原理就不加赘述了.贴出来源代码. 插入排序: def insertion_sort(sort_lis

Python算法:推导、递归和规约

Python算法:推导.递归和规约 注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心知识:Induction(推导).Recursion(递归)和Reduction(规约),这是原书的重点和难点部分 正如标题所示,本节主要介绍下面三部分内容: • Reduction means transforming one problem to another. We normally red

1156: 零起点学算法63——弓型矩阵

1156: 零起点学算法63--弓型矩阵 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 3403  Accepted: 1284[Submit][Status][Web Board] Description 输出n*m的弓型矩阵 Input 多组测试数据 每组输入2个整数 n和m(不大于20) Output 输出n*m的弓型矩阵,要求左上角元素是1,(每个元素占2个位置,靠右) Sample In

Conquer-Divide的经典例子之Strassen算法解决大型矩阵的相乘

在通过汉诺塔问题理解递归的精髓中我讲解了怎么把一个复杂的问题一步步recursively划分了成简单显而易见的小问题.其实这个解决问题的思路就是算法中常用的divide and conquer, 这篇日志通过解决矩阵的乘法,来了解另外一个基本divide and conque思想的strassen算法.矩阵A乘以B等于X, 则Xij = 注意左乘右乘的区别,AB 与BA是不同的.如果r = 1, 直接就是两个数的相乘.如果r = 2, 例如X = [ 1, 2;   3, 4];Y = [ 2,

Python算法与数据结构--求所有子数组的和的最大值

Python算法与数据结构--求所有子数组的和的最大值 玄魂工作室-玄魂 玄魂工作室秘书 玄魂工作室?昨天 题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 这个题目有多个解法,比如可以用一个二维数组存之前每个数据的和,然后在进行大小比较:但是这样时间负责度就是O(n2)了. 换个思路思考下,因为是要最大数,那么就不需要存储,只需要找最大值就可以了.但是为了找子序列的最大和,在遇到

python算法题 python123网站单元四题目

目录 一:二分法求平方根 二:Collatz猜想 三:算24(只考虑满足,不考虑把所有情况找出来) ??下面向大家介绍几个python算法题. 一:二分法求平方根 1.题目要求为 2.输入输出格式为 3.博主解题的思路 ??这道题在c语言中是一道经典的题目,可以用循环,或者递归,在这里我们用python来写.无论是循环还是递归,都是下面的思路: ??二分法就是从中间开始取,把我们每次的结果的变化值(这里是平方)和初始数值对比,然后分别从左右两边截取. ??这里首先设定两个范围定界符low与hig

Python算法的七个重要特征

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出.如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题.算法是Python开发中重要知识技能,不可避免的要使用到该技能,那么,Python算法有什么特点呢? 一个Python算法应该具有以下七个重要的特征: 有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止: 确切性(Defin

Python算法应用实战之队列详解

队列是一种先进先出(First-In-First-Out,FIFO)的数据结构.队列被用在很多地方,比如提交操作系统执行的一系列进程.打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客.下面就介绍了Python中队列的应用实战,需要的可以参考. 队列(queue) 队列是先进先出(FIFO, First-In-First-Out)的线性表,在具体应用中通常用链表或者数组来实现,队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作,队列的操作方式和堆栈类似