蛇形矩阵python

这篇具有很好参考价值的文章主要介绍了蛇形矩阵python。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 作者简介:一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。
  • 座右铭:未来是不可确定的,慢慢来是最快的。
  • 个人主页:极客李华-CSDN博客
  • 合作方式:私聊+
  • 这个专栏内容:BAT等大厂常见后端java开发面试题详细讲解,更新数目100道常见大厂java后端开发面试题。
  • 我的CSDN社区:https://bbs.csdn.net/forums/99eb3042821a4432868bb5bfc4d513a8
  • 微信公众号,抖音,b站等平台统一叫做:极客李华,加入微信公众号领取各种编程资料,加入抖音,b站学习面试技巧,职业规划

蛇形矩阵

输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。

具体矩阵形式可参考样例。

输入格式
输入共一行,包含两个整数 n 和 m。

输出格式
输出满足要求的矩阵。

矩阵占 n 行,每行包含 m 个空格隔开的整数。

数据范围
1≤n,m≤100
输入样例:
3 3
输出样例:

1 2 3
8 9 4
7 6 5

提交代码

n,m = map(int,input().split())
res = [[0 for i in range(m)] for i in range(n)]
# 需要时刻明白的是 x代表的是行号,y代表的是列号
# dx,dy表示的是上右下左的四个方向
# 往上走行号-1,列号不变
# 往右走行号不变,列号+1
dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1]

# 最开始x,y是从0开始,也就是左上角的第一个
# d为1默认的首先的顺序是从往右开始的
x , y, d = 0, 0, 1

# 跟题目要求 i是从1开始的到n*m
for i in range(1, n * m + 1):
    res[x][y] = i
    a, b = x + dx[d], y + dy[d]
    # 当a,b到了边界之后或者此时res[a,b]不为0 就需要换方向了
    # 这个时候需要改变的就是d了
    if a < 0 or a >= n or b < 0 or b >= m or res[a][b] != 0:
        d = (d + 1) % 4
        a, b = x + dx[d], y + dy[d];
    x, y = a, b
for i in range(n):
    for j in range(m):
        print(res[i][j], end=' ')
    print()

如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯,企业面试内容,编程资源,如何写出可以让大厂面试官眼前一亮的简历等内容,让大家更好学习编程,我的抖音,B站也叫极客李华。文章来源地址https://www.toymoban.com/news/detail-531006.html

到了这里,关于蛇形矩阵python的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为机试题:HJ35 蛇形矩阵(python)

    描述 : 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 例如,当输入5时,应该输出的三角形为: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 输入描述 : 输入正整数N(N不大于100) 输出描述 :输出一个N行的蛇形矩阵。 示例1 Python3 【Python】input()函数用法小结 常用的强转类

    2024年02月07日
    浏览(28)
  • 100个python算法超详细讲解:矩阵转置

    【100个python算法超详细讲解】@谷哥技术 1.问题描述 编写一个程序,将一个3行3列的矩阵进行转置。 2.问题分析 要解决该问题首先应该清楚什么是矩阵的转置。矩阵转置在数学 上的定义为: 设A为m×n阶矩阵(即m行n列的矩阵),其第i行第j列的元素是 a(i,j),即A=a(i,j) m×n 定

    2023年04月16日
    浏览(25)
  • 打印回型矩阵<——>蛇形矩阵(C语言)

    目录 一:回型矩阵 二:蛇形矩形 题目要求,用户输入一个数得到这样一个图形  加入用户输入的是4,可以看出这是一个4*4的矩形,也就可以用二维数组来存放这个矩形。外卖可以看出这个矩形的规律就是 左——右        依次递增 上——下        依次递增 右——左 

    2024年02月06日
    浏览(41)
  • C语言蛇形矩阵

    山有榛,隰有苓。云谁之思?西方美人。 --邶风·简兮 话不多说,直接看图 通过观察图表,我想到了这种方法: 我将数字放置的位置分为两大类:向右走和向左走 每大类里又分为3小类: 向左走:(1)能往左下往左下(2)左下不行向下移(3)下移不行向右移 向右走:(

    2024年01月21日
    浏览(30)
  • 蛇形矩阵蒸滴好玩

    先来看看题目: 描述 康托尔三角是由著名数学家康托尔设计的一个整数三角,可以用来证明所有有理数与自然数一一对应,亦即有理数集是一个可数集。康托尔三角的构造如下: 01 02 06 07 15 16 28 29 45 46 03 05 08 14 17 27 30 44 47 04 09 13 18 26 31 43 48 10 12 19 25 32 42 49 11 20 24 33 41 50 21

    2024年02月08日
    浏览(27)
  • 蛇形矩阵(c语言)

    输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到n×m 按照回字蛇形填充至矩阵中。 具体矩阵形式可参考样例。 输入格式 输入共一行,包含两个整数 n 和 m。 输出格式 输出满足要求的矩阵。 矩阵占 n 行,每行包含 m 个空格隔开的整数。 数据范围 1≤n,m≤100 输入样

    2024年01月22日
    浏览(28)
  • A*算法求解迷宫问题(算法讲解与证明、python实现与可视化)

    目录 一、引入 二、具体细节 1、BFS(Breadth First Search) 2、Dijkstra(Uniform Cost Search) 3、启发式(Heuristic search) 4、A*算法 4.1 算法细节 4.2 A与A*算法 4.3 A*算法证明 4.4 算法过程 三、具体实现 1、实验要求 2、代码实现 四、源代码        当我开始学习该算法时,网上已经有了很

    2023年04月08日
    浏览(38)
  • 【机器学习 | 异常检测】孤立森林(isolation Forest)iForest 算法理论讲解及 Python 实战

    孤立森林(Isolation Forest,简称 iForest)是一种无监督学习算法,用于识别异常值。 其基本原理可以概括为一句话:异常数据由于数量较少且与正常数据差异较大,因此在被隔离时需要较少的步骤。 有两个假设: 异常的值是非常少的(如果异常值很多,可能被识别为正常的)

    2024年04月23日
    浏览(30)
  • 数据结构第七周 :(稀疏矩阵快速转置 + 简单文本编辑器 + 三元组的矩阵加法 + 九宫格数独游戏 + 数组主元素 + 螺旋数字矩阵 + 蛇形矩阵)

    【问题描述】 稀疏矩阵的存储不宜用二维数组存储每个元素,那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成。而矩阵转置就

    2023年04月21日
    浏览(32)
  • 【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)

    混淆矩阵(Confusion Matrix):将分类问题按照真实情况与判别情况两个维度进行归类的一个矩阵,如在二分类问题中就是一个2*2的矩阵: TP(True Positive):表示实际为真预测为真 FP(False Positive):表示实际为假预测为真 (误报) TN(True Negative):表示实际为假预测为假 FN(False N

    2024年01月24日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包