0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何输出这样的矩阵呢?

算法与数据结构 来源:小K算法 作者:小K算法 2022-05-13 11:15 次阅读

01 故事起源有这样的一种矩阵,从左上角开始,顺时针从外向里旋转,数字依次递增,如果给定任意行n、列m,请问如何输出这样的矩阵呢? 45346602-d267-11ec-bce3-dac502259ad0.jpg    02 分析这个问题第一眼就觉得很简单,为啥呢,因为规律很明显,问题描述都已经说的很清晰了,只要按照要求模拟一遍就行了。
如果现在让你把这个问题描述给其他人,你是不是也会这样来描述:一直向前走,无路可走向右转。。。 455742bc-d267-11ec-bce3-dac502259ad0.jpg    03 模拟啥是模拟呢,模拟就是按照你的想法,机械的执行命令就可以了,没有啥算法可言,就像这个问题一样。 4572a4f8-d267-11ec-bce3-dac502259ad0.jpg  不过机器并不能听懂你的高级语言,所以需要翻译一下。 458b2a50-d267-11ec-bce3-dac502259ad0.jpg  说机话
整个过程拆解为4个步骤:
从矩阵左上角开始向右直到边界;2)向下;3)向左;4)向上。
重复上面4个步骤,直到填满整个矩阵。
45ab891c-d267-11ec-bce3-dac502259ad0.jpg  于是我们就得到了初步的框架:

			while(还没填满){  //向右直到边界 j++;  //向下直到边界 i++;  //向左直到边界 j--;  //向上直到边界  i--; }
			
									04
									细节从左向右,结束时j超出边界,需要j--。最上一行已填满,上边界下移,同时i也下移。
			45cd85da-d267-11ec-bce3-dac502259ad0.jpg
			 从上向下,结束时i超出边界,需要i--。最右一列已填满,右边界左移,同时j也左移。
			45eb6ece-d267-11ec-bce3-dac502259ad0.jpg
			 其余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

    文章

    1421

    浏览量

    83897
  • 矩阵
    +关注

    关注

    0

    文章

    422

    浏览量

    34502

原文标题:旋转矩阵

文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MATLAB(6)--特殊矩阵

    通用的特殊矩阵 zero函数:产生全是0矩阵,即零矩阵。 ones函数:产生全是1矩阵,即幺矩阵。 eyes函数:产生对角线为1的
    发表于 09-06 10:24

    MATLAB(2)--MATLAB矩阵的表示

    矩阵的建立 利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵的顺序输入各元素,同一行的各元素之间用逗号或者空格分隔,不同的元素之间用分号分隔。 利用已建好的
    发表于 09-06 10:05

    MATLAB中的矩阵索引

    矩阵进行索引是从矩阵中选择或修改部分元素的一种方式。MATLAB 有几种索引样式,它们不仅功能强大、灵活,而且可读性强、表现力强。矩阵是 MATLAB 用来组织和分析数据的一个核心组件,索引是以可理解的方式有效操作
    的头像 发表于 09-05 09:28 387次阅读
    MATLAB中的<b class='flag-5'>矩阵</b>索引

    XLT开关矩阵

    开关矩阵 苏州新利通 系列化开关矩阵是提高被测件测试效率、实现自动化测试的核心设备,是基于标准控制平台可进行定制化设计的产品。系列化开关矩阵工作频率范围覆盖DC~67GHz,可通过LAN、GPIB
    的头像 发表于 08-06 17:15 196次阅读
    XLT开关<b class='flag-5'>矩阵</b>

    键盘的矩阵规格设计图

    键盘的矩阵规格设计图
    发表于 06-19 14:29 0次下载

    STM32矩阵按键造成IO口的损坏的原因?

    看了网上的4*4矩阵按键,不带外部中断,可实现多个按键同时按下。发现行线都配置成GPIO_Mode_Out_PP推挽输出,我认为当同一个列线上有两个按键同时按下时就会出现问题。 因为矩阵按键必然存在
    发表于 05-17 06:02

    单片机接矩阵键盘GPIO应该怎么设置?是用上拉输出或输入模式吗?

    单片机接矩阵键盘GPIO应该怎么设置?是用上拉输出或输入模式吗?
    发表于 05-11 08:38

    stop mode下怎么实现按下矩阵键盘的任意键将系统唤醒

    请问有没有大佬知道stop mode下怎么实现按下矩阵键盘的任意键将系统唤醒?用WAKEUP 能实现吗?
    发表于 05-06 07:08

    变压器输出电压是否可以随意调低

    变压器输出电压是否可以随意调低? 变压器输出电压的调整是通过改变输入电压或改变变压器的线圈比例来实现的。虽然从理论上来说,可以通过相应的方式调整变压器输出电压,但在实际应用中却有一些
    的头像 发表于 02-02 09:36 2004次阅读

    无缝高清矩阵切换器和传统的矩阵切换器有什么区别?

    。 分辨率调节:无缝高清矩阵切换器可以固定分辨率,也可以设置每个端口的分辨率都不一样,更具灵活性。相比之下,传统矩阵切换器的分辨率调整存在限制,例如在输入和输出设备分辨率不同时,可能只能选择两者中较低的分辨率
    的头像 发表于 01-24 14:38 464次阅读

    协方差矩阵和相关系数矩阵的转化

    协方差矩阵和相关系数矩阵是统计学中常用的概念,在多变量统计分析中起着至关重要的作用。 在进行多变量统计分析时,我们通常会涉及多个变量之间的关系和相互作用。协方差矩阵和相关系数矩阵就是用
    的头像 发表于 01-12 11:02 1808次阅读

    矩阵led扫描频率怎么调

    矩阵LED扫描频率是指LED矩阵在单位时间内刷新显示的次数。LED矩阵是由多个发光二极管(LED)组成的显示设备,通过扫描控制来实现各个LED的亮灭,从而显示出不同的图像或信息。调整矩阵
    的头像 发表于 01-02 17:30 1215次阅读

    多输入单输出的系统,噪声系数应该怎么算

    元旦前,有号友问了一个问题,就是,多输入单输出的系统,噪声系数应该怎么算
    的头像 发表于 01-02 14:46 1318次阅读
    多输入单<b class='flag-5'>输出</b>的系统,噪声系数应该怎么算<b class='flag-5'>呢</b>?

    混合矩阵是干什么用的?高清混合矩阵怎么使用?

    混合矩阵是干什么用的?高清混合矩阵怎么使用? 混合矩阵(confusion matrix),也被称为错误矩阵(error matrix),是用来评估分类模型性能的一种工具。它可以对分类
    的头像 发表于 12-04 14:40 1016次阅读

    IP交换矩阵的关键参数 IP交换矩阵测试原理概述

    IP交换矩阵是由一级或多级交换设备及其控制器组成的单体矩阵,包含媒体业务信号、控制指令信号、同步时钟信号三个平面。
    的头像 发表于 12-04 14:13 2828次阅读
    IP交换<b class='flag-5'>矩阵</b>的关键参数 IP交换<b class='flag-5'>矩阵</b>测试原理概述