蛇形矩阵(xmuoj)

描述

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

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

输入

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

输出

输出满足要求的矩阵。

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

数据范围

1≤n,m≤100

输入样例 1 

3 3

输出样例1
1 2 3
8 9 4
7 6 5

代码实现:

原始版本:

相对冗余

def print_matrix(M):for row in M:print(' '.join(map(str, row)))line=input()
list=[int(i) for i in line.split()]
n,m=list[0],list[1]
M=[[0 for _ in range(m)] for _ in range(n)]
i,j=0,0
flag=True
itag,jtag=True,True
for num in range(1,n*m+1):M[i][j]=numif flag:if jtag:j+=1if j>=m-1 or M[i][j]:jtag=Falseflag=Falseif M[i][j]:j-=1if itag:i+=1else:i-=1else:j-=1if j<=0 or M[i][j]:jtag=Trueflag=Falseif M[i][j]:j+=1if itag:i+=1else:i-=1else:if itag:i+=1if i>=n-1 or M[i][j]:itag=Falseflag=Trueif M[i][j]:i-=1if jtag:j+=1else:j-=1else:i-=1if i<=0 or M[i][j]:itag=Trueflag=Trueif M[i][j]:i+=1if jtag:j+=1else:j-=1
print_matrix(M)
优化代码:

相对简短

def spiral_fill(n, m):M = [[0] * m for _ in range(n)]directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]  # 右,下,左,上direction_index = 0  # 初始方向为向右i, j = 0, 0  # 初始位置for k in range(1, n * m + 1):M[i][j] = k# 尝试移动到下一个位置ni, nj = i + directions[direction_index][0], j + directions[direction_index][1]if 0 <= ni < n and 0 <= nj < m and M[ni][nj] == 0:i, j = ni, njelse:# 如果不能移动到下一个位置,改变方向direction_index = (direction_index + 1) % 4i, j = i + directions[direction_index][0], j + directions[direction_index][1]return Mdef print_matrix(M):for row in M:print(' '.join(map(str, row)))# 读取矩阵大小
n, m = map(int, input().split())# 填充蛇形矩阵
M = spiral_fill(n, m)# 打印矩阵
print_matrix(M)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TMGM:ASIC撤销禁令,TMGM强化合规、重启差价合约服务

TMGM作为差价合约&#xff08;CFDs&#xff09;与保证金外汇交易领域的领航者&#xff0c;安全、合规、高效被奉为我集团的终身使命。澳大利亚证券和投资委员会&#xff08;ASIC&#xff09;已正式撤销了早前针对TMGM差价合约业务实施的临时止损令。这一误会的解除&#xff0c;…

降低IT运营成本,提升客户体验 |LinkSLA亮相第十届CDIE

6月25-26日&#xff0c;中国数字化创新博览会&#xff08;CDIE 2024&#xff09;在上海张江科学会堂举行。本届展览主题为“AI创新&#xff0c;引领商业增长新格局”&#xff0c;旨在交流企业在数字化时代&#xff0c;如何以科技为驱动&#xff0c;在转型中如何把握机遇&#x…

Springboot + Mybatis-Plus代码生成指南

使用 Spring Boot 和 MyBatis-Plus 生成代码&#xff0c;可以大大简化开发流程&#xff0c;可以保持编码的规范性&#xff0c;生成单元测试等。以下是详细步骤&#xff1a; 配置pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>myb…

【D3.js in Action 3 精译】推荐序

作为一名自由职业的数据可视化教育从业人员、咨询顾问和设计师&#xff0c;我从 2000 年代末开始就深深沉浸在数据可视化的各个角落&#xff0c;有幸坐到前排亲眼目睹了巨大的产业变革。数据可视化的技术格局一直在推陈出新。从行业工具的发展演变&#xff0c;到触达受众的可视…

如何利用静力水准仪进行地形沉降测量

地形沉降测量在建筑工程和地质研究中起着至关重要的作用。准确的地形沉降测量可以帮助工程师预测和预防潜在的地基问题&#xff0c;从而保障建筑物的安全和稳定。本文将详细介绍如何利用静力水准仪进行地形沉降测量&#xff0c;并探讨其在实际应用中的优势。 静力水准仪的基本原…

关于数字化营销中做好拓新裂变活动的策划探讨

一、引言 在当今数字化时代&#xff0c;企业面临着日益激烈的市场竞争和不断变化的消费者需求。数字化营销作为一种高效的营销方式&#xff0c;能够以较低的成本触达更广泛的目标受众。而拓新裂变活动则是数字化营销中的关键环节&#xff0c;对于企业快速扩大用户群体、提升品…

购物商城系统

摘要 随着互联网的快速发展&#xff0c;网上购物已经成为人们日常生活中不可或缺的一部分。越来越多的消费者选择在网上购物&#xff0c;享受随时随地的便利和丰富多样的商品选择。然而&#xff0c;随着网上购物用户数量的不断增加&#xff0c;传统的线下商店已经无法满足用户…

国家地表水水质自动监测数据(整理版)

国家地表水水质自动检测实时数据发布系统&#xff0c;发布的数据。含省份、城市、河流、流域、断面名称、监测时间、水温、pH、DO、CODMn、TP、TN、NH3-N、浊度等。 数据介绍&#xff1a; 2014年4月-2020年11月每月60-140个左右的站点有数据&#xff0c;从2020年11月开始&#…

MHA、MMM高可用方案及故障切换

目录 一、MHA高可用方案 1、MHA的组成 2、MHA的工作原理 3、部署MHA架构 第一部分&#xff1a;一主两从数据库架构部署 1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步 2、MySQL服务器做主从复制 3、测试主从效果 第二部分&#xff1a;MHA架…

MySQL建表时的注意事项

以下是我对MySQL建表时的注意事项。其实&#xff0c;建表事项有很多&#xff0c;我的总结如下&#xff1a; 1 存储引擎的选择&#xff0c;一般做开发&#xff0c;都是要支持事务的&#xff0c;所以选择InnoDB 2 对字段类型的选择&#xff1a; ​ 对于日期类型如果要记录时分…

VS Code SSH 远程连接服务器及坑点解决

1,设置密钥参考VS Code SSH 远程连接服务器及坑点解决_vscode-cli-611f9bfce64f25108829dd295f54a6894e87339-CSDN博客 2, 远程服务器需要下载 sudo apt-get install wget sudo apt-get install curl 3,代理设置 https://bobbyhadz.com/blog/error-while-fetching-extensi…

PyTorch nn.MSELoss() 均方误差损失函数详解和要点提醒

文章目录 nn.MSELoss() 均方误差损失函数参数数学公式元素版本 要点附录 参考链接 nn.MSELoss() 均方误差损失函数 torch.nn.MSELoss(size_averageNone, reduceNone, reductionmean) Creates a criterion that measures the mean squared error (squared L2 norm) between each…

Python25 Numpy基础

1.什么是Numpy NumPy&#xff08;Numerical Python 的简称&#xff09;是 Python 语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供大量的数学函数库。NumPy 的前身是 Numeric&#xff0c;这是一个由 Jim Hugunin 等人开发的…

SAP ALV 负号提前

FUNCTION CONVERSION_EXIT_ZSIGN_OUTPUT. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" REFERENCE(INPUT) *" EXPORTING *" REFERENCE(OUTPUT) *"…

PNAS|这样也可以?拿别人数据发自己Paper?速围观!

还在为数据量小&#xff0c;说服力不足发愁&#xff1f; 想研究脱颖而出、眼前一亮&#xff1f; 想从更高层次的探索微生物的奥秘&#xff0c;发出一篇好文章&#xff1f; 近期&#xff0c;有一篇发表在PNAS(IF11.1)的文章“Deforestation impacts soil biodiversity and ecos…

量子计算与AI融合:IBM引领未来计算新纪元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

docker-本地部署-后端

前置条件 后端文件 这边是一个简单项目的后端文件目录 docker服务 镜像文件打包 #命令行 docker build -t author/chatgpt-ai-app:1.0 -f ./Dockerfile .红框是docker所在文件夹 author&#xff1a;docker用户名chatgpt-ai-app&#xff1a;打包的镜像文件名字:1.0 &#…

YOLOv10改进 | 卷积模块 | 将Conv替换为轻量化的GSConv【轻量又涨点】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a;《YOLOv8改进有效…

Spring Boot中如何集成ElasticSearch进行全文搜索

Spring Boot中如何集成ElasticSearch进行全文搜索 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨如何在Spring Boot应用中集成Elas…

技术流 | 运维平台大型“生产事故”录播和实战重现

【本文作者&#xff1a;擎创科技 资深专家禹鼎侯】 本文写于2021年&#xff0c;最近重读觉得特别有现场感。这也是运维人面对生产环境时遇到的各种惊心动魄的事件之一。惊险&#xff0c;但又顺利解决。是最好的结果。 事情是酱紫的。 那天上午&#xff0c;轻轻松松完成了一个新…