博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指OFFER之顺时针打印矩阵(九度OJ1391)
阅读量:6933 次
发布时间:2019-06-27

本文共 1516 字,大约阅读时间需要 5 分钟。

题目描述:

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

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

解题思路:

  这道题目有一个坑人的地方,但是题目中已经说明了,就是每个数字后面都有一个空格,因此,最后一个数字也是有空格的

  主要的思想是:采用一层一层的剥离输出。我们标记好每次行threshold_m与列threshold_n的范围,然后通过指定输出的顶点,来调用输出函数。

     threshold_n = n;        threshold_m = m;        i=0;        j=0;        while(i

 

void printMatrix(int m,int n){    int i=m,j=n;    for( ;j
=n && i!=m;j--){ printf("%d ",arr[i][j]); } j++; for(i--;i>m && j!=threshold_n-1;i--){ printf("%d ",arr[i][j]); }}

 

全部代码:

#include 
#define MAXSIZE 1000int arr[MAXSIZE][MAXSIZE] = {
0};int threshold_m = 0;int threshold_n = 0;void printMatrix(int m,int n); int main(){ int m,n,i,j; while(scanf("%d %d",&m,&n) != EOF && n>=1 && n<=1000 && m>=1 && m<=1000){ for(i=0; i
=n && i!=m;j--){ printf("%d ",arr[i][j]); } j++; for(i--;i>m && j!=threshold_n-1;i--){ printf("%d ",arr[i][j]); }}/************************************************************** Problem: 1391 User: xhalo Language: C Result: Accepted Time:560 ms Memory:4820 kb****************************************************************/

 

 

转载地址:http://qjgjl.baihongyu.com/

你可能感兴趣的文章
Java最全文件操作实例汇总
查看>>
移动端手势库Hammer.js学习
查看>>
Atitit main函数的ast分析 数组参数调用的ast astview解析
查看>>
设计模式学习笔记(八:迭代器模式)
查看>>
软件测试体系划分与职业素养
查看>>
C++ primer学习方法
查看>>
关于运维体系谈谈我的想法
查看>>
系统访问慢的几个原因
查看>>
mac git安装及github配置
查看>>
BZOJ2498 : Xavier is Learning to Count
查看>>
postgresql数据库的数据导出
查看>>
Kafka: Connect
查看>>
hibernate(七) hibernate中查询方式详解
查看>>
用gulp构建你的前端项目
查看>>
cmd for 循环拷贝文件
查看>>
【转】PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法
查看>>
System.Security.Cryptography.CryptographicException,密钥集不存在
查看>>
敏捷团队中的QA由来
查看>>
gdb调试报错:Missing separate debuginfos, use: debuginfo-install glibc-XXX
查看>>
根据百度API获得经纬度,然后根据经纬度在获得城市信息
查看>>