01 故事起源有这样的一种矩阵,从左上角开始,顺时针从外向里旋转,数字依次递增,如果给定任意行n、列m,请问如何输出这样的矩阵呢?
![45346602-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_d-Ad2u7AACBy9_KByw878.jpg)
如果现在让你把这个问题描述给其他人,你是不是也会这样来描述:一直向前走,无路可走向右转。。。
![455742bc-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_d-AIDFjAABpSFOgz7U326.jpg)
![4572a4f8-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_d-AGshvAAB7aMtRDt0828.jpg)
![458b2a50-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_eCAKPyTAACHC4H08EU314.jpg)
整个过程拆解为4个步骤:
从矩阵左上角开始向右直到边界;2)向下;3)向左;4)向上。
重复上面4个步骤,直到填满整个矩阵。
![45ab891c-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_eCAJrahAACrmMt8rQk353.jpg)
while(还没填满){ //向右直到边界 j++; //向下直到边界 i++; //向左直到边界 j--; //向上直到边界 i--; } 04 细节从左向右,结束时j超出边界,需要j--。最上一行已填满,上边界下移,同时i也下移。
![45cd85da-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_eCAOjR2AABu2-EoqUk070.jpg)
![45eb6ece-d267-11ec-bce3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/95/55/wKgZomTm_eCAQVuMAAB27XySP1k584.jpg)
#defineROW5
#defineCOLUMN5
voidmain(){
intleft=0,right=COLUMN-1,top=0,bottom=ROW-1;
intf[ROW][COLUMN],i=0,j=0,num=1;
while(i>=top&&i<= bottom && j >=left&&j<= right) {
//left->right
while(j<= right) {
f[i][j++] = num++;
}
j--;
top++;
i++;
//top->bottom
while(i<= bottom) {
f[i++][j] = num++;
}
i--;
right--;
j--;
//right->left
while(j>=left){
f[i][j--]=num++;
}
j++;
bottom--;
i--;
//bottom->top
while(i>=top){
f[i--][j]=num++;
}
i++;
left++;
j++;
}
}
06
总结模拟问题一般都比较简单,只需要把整个框架过程抽象出来,然后机械的实现即可。但偶尔也会遇到复杂的模拟,一般都是细节涉及的比较多,比如边界信息太多,或者过程太多等。不过这种问题很适合锻炼代码实现能力,多做就能达到“有思想就一定能实现”的状态。
审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
模拟
+关注
关注
7文章
1414浏览量
83722 -
矩阵
+关注
关注
0文章
410浏览量
34327
原文标题:旋转矩阵
文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
stop mode下怎么实现按下矩阵键盘的任意键将系统唤醒呢?
请问有没有大佬知道stop mode下怎么实现按下矩阵键盘的任意键将系统唤醒呢?用WAKEUP 能实现吗?
发表于 05-06 07:08
无缝高清矩阵切换器和传统的矩阵切换器有什么区别?
。 分辨率调节:无缝高清矩阵切换器可以固定分辨率,也可以设置每个端口的分辨率都不一样,更具灵活性。相比之下,传统矩阵切换器的分辨率调整存在限制,例如在输入和输出设备分辨率不同时,可能只能选择两者中较低的分辨率
矩阵led扫描频率怎么调
矩阵LED扫描频率是指LED矩阵在单位时间内刷新显示的次数。LED矩阵是由多个发光二极管(LED)组成的显示设备,通过扫描控制来实现各个LED的亮灭,从而显示出不同的图像或信息。调整矩阵
混合矩阵是干什么用的?高清混合矩阵怎么使用?
混合矩阵是干什么用的?高清混合矩阵怎么使用? 混合矩阵(confusion matrix),也被称为错误矩阵(error matrix),是用来评估分类模型性能的一种工具。它可以对分类
音频矩阵如何连接功放 音视频矩阵的技术原理
连接音频输入源。音频输入源可以是任何具有音频输出的设备,例如CD播放器、电视机、电脑等。使用标准音频线缆将这些设备连接到音频矩阵的输入端口。
讯维高清混合矩阵切换器的技术原理揭秘
讯维高清混合矩阵切换器是一种针对模拟、数字信号进行切换的矩阵设备,它可以将多路输入信号切换到多路输出信号的任意通道。其主要技术原理包括以下几个方面。
高清混合矩阵切换器解决方案在不同场景下的选择技巧分析
讯维高清混合矩阵切换器解决方案在不同场景下的选择技巧分析如下: 确认是分配信号还是切换信号:如果需要将一路输入信号转换为多路输出信号,则需要选择分配器;如果需要多路输入信号选择一路输出或者多路
![高清混合<b class='flag-5'>矩阵</b>切换器解决方案在不同场景下的选择技巧分析](https://file1.elecfans.com/web2/M00/A1/18/wKgZomTwT6aAYz0YAADF9njRGFw046.png)
音箱矩阵是什么意思 音箱矩阵的连接方法有哪些
音频矩阵接线图的具体接线方式会受到你所使用的音频设备和矩阵系统的不同而有所不同。以下是一般性的指导:
确定输入和输出:首先需要确定音频源的输入和音箱/扬声器的输出。音频源可以是来自于
发表于 08-22 14:59
•3195次阅读
讯维HDMI矩阵切换器介绍
矩阵的概念引用高数中的线性代数的概念,一般指在多路输入的情况下有多路的输出选择,形成下图的矩阵结构,既每一路输出都可与不同的输入信号“短接”,每路输
高清混合矩阵的常见问题
高清混合矩阵的技术原理是将多个视频信号源进行混合和处理,并将处理后的信号输出到多个显示设备上。以下是高清混合矩阵常见的几个问题: 1.信号不兼容:不同品牌和型号的设备可能采用不同的视频信号格式和标准
讯维高清混合矩阵切换器与传统矩阵切换器的区别
,满足复杂场景下的视听需求。而传统矩阵切换器则适用于较为简单的信号切换和分配,如会议中心、教学场所等。 2.输入输出信号类型:高清混合矩阵切换器支持多种不同信号类型的输入和输出,如HD
![讯维高清混合<b class='flag-5'>矩阵</b>切换器与传统<b class='flag-5'>矩阵</b>切换器的区别](https://file1.elecfans.com//web2/M00/8D/AB/wKgZomS-i-OAAPPKAAIqYpqJif4724.jpg)
讯维矩阵切换器常见问题有哪些
:可能是由于信号源设备故障、连接线缆问题或切换器设置错误等。 3.矩阵切换器输出画面质量差:可能原因是信号源设备故障、连接线缆质量差或切换器设置不正确等。 4.矩阵切换器噪音大:可能原因是信号源设备故障、连接线缆屏蔽不良或切
![讯维<b class='flag-5'>矩阵</b>切换器常见问题有哪些](https://file1.elecfans.com//web2/M00/8D/AE/wKgaomS-i4OAXiyGAAE8gwx_6AQ015.jpg)
评论