题目1391:顺时针打印矩阵-九度

【算法】顺时针打印矩阵(图文详解,代码详细注释 对一个5*5的矩阵,最后一圈只有一个数字,对应的坐标为(2,2),我们发现5>2*2。对一个6*6的矩阵而言,最后一圈有4个数字,其左上角的坐标仍然为(2,2),我们发现6>2*2依然成立。但是值得注意的是,最后一圈有可能退化成只有一行、只有一列、甚至只有一个数字,因此打印这样的一圈就不再需要第四步。打印第一圈的左上角的坐标是(0,0),第二圈的左上角的坐标是(1,1),以此类推。第四步:由图中就可以看出,需要打印第四步的前提条件是至少要有三行两列,因此要求终止行号比起始行号至少大2。 阅读详情
题目描述:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

输入:

输入可能包含多个测试样例,对于每个测试案例,

输入的第一行包括两个整数m和n(1<=m,n<=1000):表示矩阵的维数为m行n列。

接下来的m行,每行包括n个整数,表示矩阵的元素,其中每个元素a的取值范围为(1<=a<=10000)。

输出:

对应每个测试案例,输出一行,

按照从外向里以顺时针的顺序依次打印出每一个数字,每个数字后面都有一个空格。

样例输入:
4 41 2 3 45 6 7 89 10 11 1213 14 15 16
样例输出:
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 
 
 
推荐指数:※

来源:http://ac.jobdu.com/problem.php?pid=1391

转圈大于,注意边界。在考虑打印一遍的时候,判断当前时候符合打印条件,防止重复打印。

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
long **num;
void clock_print(int m1,int m2,int n1,int n2){
    if(n1<=n2&&m1<=m2){
		int i;
		for(i=n1;i<=n2;i++)
			printf("%ld ",num[m1][i]);
		for(i=m1+1;i<=m2;i++)
			printf("%ld ",num[i][n2]);
		for(i=n2-1;i>=n1&&m1<m2;i--)
			printf("%ld ",num[m2][i]);
		for(i=m2-1;i>=m1+1&&n1<n2;i--)
			printf("%ld ",num[i][n1]);
		clock_print(m1+1,m2-1,n1+1,n2-1);
	}	
}
int main()
{
	int m,n;
	while(scanf("%d%d",&m,&n)!=EOF){
		int i,j;
		num=new long*[m];
		for(i=0;i<m;i++){
			num[i]=new long [n];
			for(j=0;j<n;j++)
				scanf("%ld",&num[i][j]);
		}
		clock_print(0,m-1,0,n-1);
		printf("\n");
	}
	return 0;
}



给几个测试用例:

5 2
1 2
3 4
5 6
7 8
9 10
2 5
1 2 3 4 5
6 7 8 9 10
3 3
1 2 3
4 5 6
7 8 9
5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
6 6
1 2 3 4 5 26
6 7 8 9 10 27 
11 12 13 14 15 28
16 17 18 19 20 29
21 22 23 24 25 30
31 32 33 34 35 36
1 5
1 2 3 4 5


输出回旋矩阵(c语言) 这是一个输出回旋矩阵的C语言程序,只要输入矩阵的大小然后按enter键就可以输出顺时针方向的回旋矩阵 立即下载

相关推荐

BookSim2.0 教程

本文是yz关于BookSim2.0的个人学习经验与教程。 1.介绍 什么是BookSim2.0 BookSim2.0 是周期正确的互联网络模拟器(A Cycle-Accurate Interconnection Network Simulator),被设计用来伴随William James Dally 等人出版的的书籍 Principles and Practices of INterconnection on Networks使用。 此后其功能不断得到扩展。当前的主要版本 BookSim 2.0 支持广泛

更新一些计算机体系架构NoC,GEM5, AXI4,还有machine learning 的日常 5736

29.顺时针打印矩阵

首先顺时针打印矩阵,需要通过图解来理解: 上面是一个3 * 3 的矩阵,我们要将其按照顺时针打印,那么打印的结果就是 1 ➡ 2➡ 3 ➡ 4➡ 5➡ 6➡ 7➡ 8➡ 9 我们可以通过模拟的方法来进行顺时针打印矩阵: 1.求出矩阵的左右宽度、上下宽度、左右边线、上下边线 这里求二维矩阵的左右宽度是 矩阵.size() 上下宽度是 矩阵[0].size() row为矩阵的宽,col为矩阵的高 那么这里的row其实记录的就是矩阵...

Huncho404的博客 2211

《小白入门:无人机电调 ESC 的 PWM 接口特性、主流协议与使用指南》

电调是无人机的 “动力中枢”,其 PWM 接口是入门的基础,而 SBUS、DroneCAN 等协议则代表了更高阶的控制方式。小白学习时,需先掌握 PWM 的基本特性和连接方法,再根据场景选择合适的协议,同时严格遵守使用注意事项(如电源匹配、校准步骤、安全操作)。随着实践深入,逐步理解 “协议差异” 和 “系统协同”,才能让无人机更稳定、安全地飞行。

bother3000的博客 3769

顺时针打印矩阵

题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 解答 方案一:模拟打印矩阵的路径。初始位置是矩阵的左上角,初始方向是向右,当路径超出界限或者进入之前访问过的位置时,则顺时针旋转,进入下一个方向。 判断路径是否进入之前访问过的位置需要使用一个与输入矩阵大小相同的辅助矩阵 visited\textit{visited}visited,其中的每个元素表示该位置是否被访问过。当一个元素被访问时,将 visited\textit{visited}visited 中的对应位置的元素设为

sinat_31608641的博客 1621

VSCode搭配Keil开发STM32:从环境配置到代码跳转全流程(避坑指南)

本文详细介绍了如何使用VSCode搭配Keil进行STM32开发,从环境配置到代码跳转的全流程指南。通过安装必备插件和正确配置项目文件,开发者可以在VSCode中享受现代编辑器的便捷功能,同时保留Keil的编译调试能力,提升嵌入式开发效率。

weixin_28832121的博客 253

差分分析.

差分分析是一种强大的密码攻击技术,通过研究明文差分与密文差分的关系来破解加密算法。本文系统介绍了差分分析的核心概念和方法: 基础差分分析:通过异或运算抵消密钥影响,利用差分分布表(DDT)寻找高概率差分特征,以FEAL-4为例展示了具体攻击过程。 高级差分技术:包括截断差分分析(关注部分特征)、不可能差分分析(排除概率为0的路径)和飞来去器分析(将算法分段处理)。 自动化搜索方法:介绍了松井算法和MILP(混合整数线性规划)方法,将差分路径搜索转化为数学优化问题。 这些方法展现了差分分析从基础理论到现代应用

weixin_61562383的博客 786

12715. 输出矩阵(OJ,入门)

一个m行,n列的矩阵(1<=n,m<=9),其中每一格中的两位数的十位和个位分别为其行数和列数,请输出该矩阵中每一格中的数值 例如,当m=3,n=4时,输出的矩阵为: 11 12 13 14 21 22 23 24 31 32 33 34 输入格式: 两个数m,n,分别代表矩阵的行数和列数 输出格式: 一个m行n列的矩阵,矩阵中每一格的数值由其行数和列数组成,数与数之间采用空格分隔开。 样例 1 : 输入: 3 4 输出: 11 12 13 14 21 2..

DXB2021的博客 517

零基础玩转STM32CubeIDE LL库:5分钟搞定串口通信(附完整代码)

本文为零基础开发者提供了一份STM32CubeIDE LL库串口通信的快速实战指南。通过CubeMX配置、LL库核心API详解,以及中断接收与环形缓冲区的完整代码实现,帮助读者在5分钟内搭建稳定可靠的串口收发框架,解决从HAL切换到LL库的常见困惑,提升嵌入式开发效率。

weixin_29159441的博客 306

顺时针打印矩阵(图文详解,代码详细注释)

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则打印出数字:1 2 3 4 8 12 16 15

吾尝终日而思矣,不如须臾之所学也 4562

python实现Markowitz模型 (附完整源码)

python实现Markowitz模型 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 405

【C/C++ 性能优化】了解cpu 从而进行C++ 高效编程

在当代软件开发领域,CPU(Central Processing Unit,中央处理器)的性能优化一直是一个核心议题。尤其是对于C++开发者而言,无论是在Linux平台还是其他操作系统中,都需要深刻理解CPU的工作原理以及如何充分利用CPU资源,以确保软件运行的高效性和稳定性。正如计算机科学家Donald Knuth在《计算机程序设计的艺术》中所说:“过早的优化是万恶之源”,然而,这并不意味着我们应该忽视性能优化——相反,我们需要在正确的时间以正确的方式进行优化。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 4748

九度oj 题目1391:顺时针打印矩阵

题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行包括两个整数m和n(1&l...

aling1199的博客 162

对MixPad精灵(触屏语音开关)进行解剖分析

概述 最近有点忙,已经很久没有更新文章了,对不起各位网友啦~ 这次对ORVIBO的新产品:MixPad精灵款的来个剖析,希望对大家有所帮助! 首先,我买了一台对应的设备,直接去官网采购,价格吗还算OK,400多的价格。 拆箱的过程我就不写了,简单的上个图就行了。 一、拆包: 主屏板包装盒(顶部): 主屏板包装盒(底部): 后盖电源部分无内容,我就不拍了,给优快云空间省点存储位置。 二、设备剖析开始 接下来,我们开始对设备进行剖析,步骤如下: 1、拆掉主屏板后盖板,...

LeeKwen的专栏 3944

九度 题目1391:顺时针打印矩阵

题目来源:http://ac.jobdu.com/problem.php?pid=1391

Abner 677

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

九度OJ-题目1391:顺时针打印矩阵

题目链接地址: 九度OJ-题目1391:顺时针打印矩阵 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 输入: 输入可能包含多个测试样

蜗牛 632

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【剑指Offer面试编程题】题目1391:顺时针打印矩阵--九度OJ

这道题目首先给人一种似曾相识的感觉,当完成代码之后发现不对劲,原因就是这次打印的是矩形而不是方阵。所以首先要解决的问题就是当我们在循环的打印每一圈的同时我们怎么保证循环的停止。仔细分析后我们会发现当矩形是m*n时,循环的圈数loop为m、n中较数的一半。且,我们发现若这个较小的数为一个奇数则最后循环打印完成后肯定会剩余一行或者一竖列元素,需要最后单独处理一下。对于每个循环我们维护一个行的最大值hidx和一个列的最大值sidx,便于确定遍历的边界,每次循环从(i,i)元素开始。

一路向前 668

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

剑指OFFER之顺时针打印矩阵(九度OJ1391)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34352005的博客 169

【剑指Offer面试题】 九度OJ1391:顺时针打印矩阵

题目链接地址: http://ac.jobdu.com/problem.php?pid=1391题目1391:顺时针打印矩阵时间限制:1 秒内存限制:32 兆特殊判题:否提交:2937解决:812 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打

牧之 991

【剑指offer】顺时针打印矩阵

剑指offer上的第20题,九度OJ上测试通过。 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行包括两个整数m和n(1<=m,n<=1000):表示矩阵的维数为m行n列。 接下来的m行,每行包括n个整数,表示矩阵的元素

兰亭风雨的专栏 5803

剑指Offer - 九度1391 - 顺时针打印矩阵

剑指Offer - 九度1391 - 顺时针打印矩阵2013-11-24 04:55 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 输入: 输入...

weixin_30337157的博客 96

九度oj-1391-顺时针打印矩阵

时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3137 解决:856 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 输入:

u011514451的专栏 454

剑指Offer--020-顺时针打印矩阵(蛇形打印矩阵)

链接 牛客OJ:顺时针打印矩阵 九度OJ:http://ac.jobdu.com/problem.php?pid=1391 GitHub代码: 020-顺时针打印矩阵 优快云题解:剑指Offer–020-顺时针打印矩阵 牛客OJ 九度OJ 优快云题解 GitHub代码 顺时针打印矩阵 1391-顺时针打印矩阵 剑指Offer–020-顺时

OSKernelLAB(gatieme) 2837
上一篇: 题目1521:二叉树的镜像-九度
下一篇: 题目1366:栈的压入、弹出序列-九度
zoushidexing
博客等级 码龄18年 70粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值