顺时针打印矩阵
2016-05-06 13:45
363 查看
问题描述:
对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。
给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
测试样例:
[[1,2],[3,4]],2,2
返回:[1,2,4,3]
AC代码:
对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。
给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
测试样例:
[[1,2],[3,4]],2,2
返回:[1,2,4,3]
AC代码:
class Printer { public: vector<int> clockwisePrint(vector<vector<int> > mat, int n, int m) { // write code here vector<int> vec; int bx=0,by=0,ex=n-1,ey=m-1,k; while(bx<ex && by<ey){ for(k=by;k<=ey;k++) vec.push_back(mat[bx][k]); for(k=bx+1;k<=ex;k++) vec.push_back(mat[k][ey]); for(k=ey-1;k>=by;k--) vec.push_back(mat[ex][k]); for(k=ex-1;k>=bx+1;k--) vec.push_back(mat[k][by]); bx++; by++; ex--; ey--; } if(bx==ex && by==ey) vec.push_back(mat[bx][by]); else if(bx==ex && by<ey) for(k=by;k<=ey;k++) vec.push_back(mat[bx][k]); else if(by==ey && bx<ex) for(k=bx;k<=ex;k++) vec.push_back(mat[k][ey]); return vec; } };
相关文章推荐
- 将json格式的字符串转化成object对象
- thinkpad笔记本功能键开关设置
- publishing failed with multiple errors
- python之decode、encode及codecs模块
- DbHelperSQL和Dapper数据访问的性能对比
- ScrollView拦截了TouchEvent咋办?
- MQ选型对比RabbitMQ RocketMQ ActiveMQ Kafka
- PAT-B 1035. 插入与归并
- Android 利用DDMS观察其他应用布局实现方式
- 模拟form表单请求上传文件
- Git查看、删除、重命名远程分支和tag
- java初学者:接口技术文章
- CKEditor图片上传实现详细步骤
- 意见簿---在批评中成长
- H5开发01——mui.fire()触发自定义事件
- 字符串匹配(BF,BM,Sunday,KMP算法解析)
- 第十周项目44-摩托车继承自行车和机动车
- 常用数据结构的应用场景
- JAVA自学之路1-JDK安装及配置
- zend studio导入thinkphp的乱码问题