01 故事起源有这样的一种矩阵,从左上角开始,顺时针从外向里旋转,数字依次递增,如果给定任意行n、列m,请问如何输出这样的矩阵呢?
02
分析这个问题第一眼就觉得很简单,为啥呢,因为规律很明显,问题描述都已经说的很清晰了,只要按照要求模拟一遍就行了。如果现在让你把这个问题描述给其他人,你是不是也会这样来描述:一直向前走,无路可走向右转。。。
03
模拟啥是模拟呢,模拟就是按照你的想法,机械的执行命令就可以了,没有啥算法可言,就像这个问题一样。
不过机器并不能听懂你的高级语言,所以需要翻译一下。
说机话整个过程拆解为4个步骤:
从矩阵左上角开始向右直到边界;2)向下;3)向左;4)向上。
重复上面4个步骤,直到填满整个矩阵。
于是我们就得到了初步的框架:while(还没填满){ //向右直到边界 j++; //向下直到边界 i++; //向左直到边界 j--; //向上直到边界 i--; } 04 细节从左向右,结束时j超出边界,需要j--。最上一行已填满,上边界下移,同时i也下移。
从上向下,结束时i超出边界,需要i--。最右一列已填满,右边界左移,同时j也左移。
其余2个过程同理。
05
代码实现
#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文章
1445浏览量
85123 -
矩阵
+关注
关注
1文章
441浏览量
35815
原文标题:旋转矩阵
文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
高清混合矩阵 vs 传统矩阵:别再瞎选!3 大核心差异 + 行业选型攻略,选错可能亏大了
在数字化视听系统快速发展的当下,矩阵切换器作为信号传输与调度的 “核心枢纽”,其性能差异直接影响着视听体验的质量与系统运行的稳定性。目前市场上主流的矩阵切换器主要分为 “高清混合矩阵切换器
讯维全域智能矩阵系统正式发布
近日,讯维正式发布了其最新力作:全域智能矩阵系统。该系统以"一体五智,化繁为简"为核心理念,集成了矩阵切换、大屏拼控、智能中控、视频录播及AI智能应用五大核心功能,旨在为会议室、指挥中心、教室、展厅等多媒体场景提供无缝、智能、一体化的信号管理解决方案,引领行业迈向高效、可
LP5812 4×3矩阵RGB LED驱动器技术文档总结
LP5812 是一款具有自主动画引擎控制功能的 4 × 3 矩阵 RGB LED 驱动器。该器件在点亮LED时具有0.4mA(典型值)的超低正常工作电流。
采用时间交叉复用(TCM)结构
求助,关于STM32H743使用DSP进行矩阵求逆计算出现的问题求解
我正在STM32H743上实现一个算法,需要进行一个20*20的矩阵求逆,但是计算结果与matlab对比差距非常大,完全不正确,原矩阵A的部分数值类似如下:
在matlab中求逆的部分结果如下:
但是在STM32H743中的求逆计算结果却是
发表于 08-08 07:24
无刷直流电机状态方程系数矩阵的动态更新
的仿真建模。把系数矩阵放在静态变量存储区,可直接修改状态方程组的系数矩阵,达到快速修改此系数矩阵的目的。另外,在每个仿真步长的输出阶段修改系数矩阵
发表于 07-09 14:17
AN-660:XY矩阵键盘与MicroConverter的接口
电子发烧友网站提供《AN-660:XY矩阵键盘与MicroConverter的接口.pdf》资料免费下载
发表于 01-13 16:02
•0次下载
为什么运放和ADC的PSRR不能把LDO输出的内部噪声抑制的干干净净呢?
,但我实测不是这样的。
我的测试方法是这样的,(1)、用LDO输出给数据采集系统中的运放和ADC供电,采集数据。(2)、加了前馈电容的LDO给数据采集系统中的运放和ADC供电,采集数据,说明:前馈电
发表于 01-08 07:49
DAC7554如果需要同时输出多路不同信号,该怎么实现呢?
可以利用fpga驱动DAC7554输出单路信号,四路单独输出,或者四路同时输出同样的信号都没有问题
如果需要同时输出多路不同信号,该怎么实现呢
发表于 01-06 06:05
ADXL1001的评估板输出的数据怎么接收呢?
ADXL1001的评估版按照连接方式连接完VCC接电源,GND接地,然后ST STB也接地,Vout应该会输出结果,输出的数据怎么接收呢,是根据电平高低来解析吗还是什么其他的协议这样,
发表于 12-19 08:28
多片ADS1675输出数据的顺序是怎样的呢?
interface,我想问下怎么配置CS管脚可以使多片ADS1675共用serial inteface ,同时,serial interface 指的
是什么,是SCLK管脚、DRDY管脚、DOUT管脚这三对管脚对吗?如果DOUT管脚对共用,那多片ADS1675输出数据的顺序是怎样的
发表于 12-13 08:59
多个DAC8760与一个SPI通信,这样设计会有什么问题没有呢?
我想咨询一下:MCU只有一路SPI接口,但需要和多个DAC8760通信。那么可以用多个GPIO作为CS片选信号,分别选中不同的DAC8760,而MCU的SCKL,MISO,MOSI这三根信号同时连接多片DAC8760,进行通信,这样设计会有什么问题没有呢?
发表于 12-13 06:59

如何输出这样的矩阵呢?
评论