博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
顺时针打印矩阵
阅读量:6405 次
发布时间:2019-06-23

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

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

例如,如果输入如下矩阵:

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。

基本思想:因为是顺时针打印一个数组,我们能够知道,左上角的坐标中行标和列表中总是相同的,因此,假设选取左上角坐标为(start,start)为分析的目标。

     循环的条件为column>start*2&&row>start*2

值得注意的是,在判断数组是否需要从上向下,从右到左,从下到上打印时,要判断所剩的行数,是否满足条件。

第一行输入为数组的列和行

例如:

4 4

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

具体代码:

#include
using namespace std;class Solution {public: vector
printMatrix(vector
> matrix) { vector
res; int row = matrix.size(); int column = matrix[0].size(); int endX = column-1; int endY = row-1; int start =0; if(row<=0&&column<=0) return res; cout<<"999"<
start*2&&column>start*2) { //从左往右 for(int i=start;i<=endX;i++) { res.push_back(matrix[start][i]); } //从上往下 if(start
=start;i--) { res.push_back(matrix[endY][i]); } } //从下往上 if(start
start;i--) { cout<
<
>n>>m; vector
str(n); vector
> res; vector
result; for(int i=0;i
>str[j]; } res.push_back(str); } for(int i=0;i

 

转载于:https://www.cnblogs.com/omelet/p/6885396.html

你可能感兴趣的文章
VTK三维点集轮廓凸包提取
查看>>
【概率论与数理统计】小结9-3 - 区间估计
查看>>
Golang性能调优入门
查看>>
sqlloader外部表
查看>>
golang笔记——数组与切片
查看>>
屏蔽可忽略的js脚本错误
查看>>
散文分享
查看>>
【Vue】vue.js常用指令
查看>>
NFS学习
查看>>
MySql常用命令总结
查看>>
又一年...
查看>>
文件上传框的美化+预览+ajax
查看>>
Linux VFS
查看>>
ext不能选中复制属性_如何实现Extjs的grid单元格只让选择(即可以复制单元格内容)但是不让修改?...
查看>>
python中print的作用*8、不能+8_在 Python 3.x 中语句 print(*[1,2,3]) 不能正确执行。 (1.0分)_学小易找答案...
查看>>
python 生成html代码_使用Python Markdown 生成 html
查看>>
axure如何导出原件_Axure 教程:轻松导出图标字体所有图标
查看>>
laravel input值必须不等于0_框架不提供,动手造一个:Laravel表单验证自定义用法...
查看>>
cad填充图案乱理石_太快了吧!原来大神是这样用CAD图案填充的
查看>>
activator.createinstance 需要垃圾回收么_在垃圾回收器中有哪几种判断是否需要被回收的方法...
查看>>