01 故事起源有这样的一种矩阵,从左上角开始,顺时针从外向里旋转,数字依次递增,如果给定任意行n、列m,请问如何输出这样的矩阵呢?

如果现在让你把这个问题描述给其他人,你是不是也会这样来描述:一直向前走,无路可走向右转。。。



整个过程拆解为4个步骤:
从矩阵左上角开始向右直到边界;2)向下;3)向左;4)向上。
重复上面4个步骤,直到填满整个矩阵。

while(还没填满){ //向右直到边界 j++; //向下直到边界 i++; //向左直到边界 j--; //向上直到边界 i--; } 04 细节从左向右,结束时j超出边界,需要j--。最上一行已填满,上边界下移,同时i也下移。


#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文章
1439浏览量
84672 -
矩阵
+关注
关注
1文章
435浏览量
35369
原文标题:旋转矩阵
文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
求助,关于STM32H743使用DSP进行矩阵求逆计算出现的问题求解
我正在STM32H743上实现一个算法,需要进行一个20*20的矩阵求逆,但是计算结果与matlab对比差距非常大,完全不正确,原矩阵A的部分数值类似如下:
在matlab中求逆的部分结果如下:
但是在STM32H743中的求逆计算结果却是
发表于 08-08 07:24
DAC7554如果需要同时输出多路不同信号,该怎么实现呢?
可以利用fpga驱动DAC7554输出单路信号,四路单独输出,或者四路同时输出同样的信号都没有问题
如果需要同时输出多路不同信号,该怎么实现呢
发表于 01-06 06:05
ADXL1001的评估板输出的数据怎么接收呢?
ADXL1001的评估版按照连接方式连接完VCC接电源,GND接地,然后ST STB也接地,Vout应该会输出结果,输出的数据怎么接收呢,是根据电平高低来解析吗还是什么其他的协议这样,
发表于 12-19 08:28
运放的哪项参数或者什么因素会这样影响输出?
如下图是一个直流电压检测电路,设计要求是1000V输出3V,实际使用直流电压一般不会超过800V,现在在使用过程中采集的输出电压在键盘显示一直在上升,输入直流电压基本不会怎么变化,这个过程虽然可能有
发表于 12-04 08:46
DAC60501芯片输出是多少呢?
must be less than 0.7 V for at least 1 ms“ ”When VDD remains greater than 2.2 V, a POR does not occur”是什么意思呢? 设置VDD=3.3V,不对芯片进行操作,芯片输出是
发表于 11-22 06:51
ADS1256的输出电路是怎样设计的呢?
对于ADS1256的输出电路是怎样设计的呢?一般ADC测试中为了提高输出的驱动能力,防止发射和振铃现象,应该怎样进行设计输出电路呢?
发表于 11-22 06:01
tas5612la 24v供电,只使用单通道BTL,这样连接输出声音小,怎么处理?
如图,24v供电,只使用单通道BTL,这样连接输出声音小,测OUTA对地电压只有8--10V
因此修改,把另一个通道的电源和部分元件也接上,这样似乎正常了,OUTA对地有12v,声音也
发表于 10-14 07:55
盛显科技:在拼接处理器上配置混合矩阵的步骤是什么?
相信大家都知道,在拼接处理器上配置混合矩阵,主要涉及到将混合矩阵的输出与拼接处理器的输入相连接,并通过拼接处理器的软件或界面进行配置,以实现多屏显示和视频信号的灵活处理。在此过程中,了解并熟知拼接
MATLAB(3)--矩阵的引用(sub2ind、ind2sub、reshape函数使用)
的序号为3。
即我们输入的坐标(1,4),(2,5),(3,1)在矩阵A中的索引号,意思是A矩阵第1行第4个元素的索引值号为16,为什么是16呢?因为MATLAB是按列搜索的,先搜索第一列,然后搜索
发表于 09-06 10:11
MATLAB(2)--MATLAB矩阵的表示
矩阵的建立
利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵的顺序输入各元素,同一行的各元素之间用逗号或者空格分隔,不同的元素之间用分号分隔。
利用已建好的
发表于 09-06 10:05
MATLAB中的矩阵索引
对矩阵进行索引是从矩阵中选择或修改部分元素的一种方式。MATLAB 有几种索引样式,它们不仅功能强大、灵活,而且可读性强、表现力强。矩阵是 MATLAB 用来组织和分析数据的一个核心组件,索引是以可理解的方式有效操作

机器人的三大矩阵是什么及关系式
在机器人学中,三大矩阵主要指的是与机器人位移、速度和力相关的矩阵,它们分别揭示了机器人在不同空间(如关节空间和作业空间)之间的映射关系。这三大矩阵及其关系式可以概括如下: 1. T矩阵
评论