旋转打印矩阵。这个题目我见过很多次都是放弃了。
2016-03-20 16:34
435 查看
题目描述
对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。
给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
测试样例:
[[1,2],[3,4]],2,2
返回:[1,2,4,3]
对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。
给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
测试样例:
[[1,2],[3,4]],2,2
返回:[1,2,4,3]
class Printer { public: vector<int> clockwisePrint(vector<vector<int> > mat, int n, int m) { vector<int>result; int left=-1; int right=m; int top=0; int down=n; int total=n*m; int count=0; int i=0,j=0; while(true) { for(j;j<right;j++){ result.push_back(mat[i][j]); count++; } right--; j=right; i++; if(count>=total){ break; } for(i;i<down;i++){ result.push_back(mat[i][j]); count++; } down--; i=down; j--; if(count>=total){ break; } for(j;j>left;j--){ result.push_back(mat[i][j]); count++; } left++; j=left; i--; if(count>=total){ break; } for(i;i>top;i--){ result.push_back(mat[i][j]); count++; } top++; i=top; j++; if(count>=total){ break; } } return result; } };
相关文章推荐
- maven3创建项目
- 【转】VMware Workstation 11 永久激活码key 非注册机
- HDU1711:Number Sequence
- Java多线程系列--“JUC线程池”01之 线程池架构
- CSS继承详解
- 15电气 齐振昊 实验名称:在VB中制作计时器(运行时时间是停止的)
- Python decorators example
- android之实现验证码的自动回填
- 文件的读取,动态内存的使用
- LeetCode-191. Number of 1 Bits
- HTML图片热点,网页拼接
- 猎豹MFC--窗口操作--最大化 最小化还原 关闭 大小位置 居中显示 图标 标题
- 读程序的题目
- oracle数据安装
- 【解决】速达服务启动失败,文件无效
- JavaScript拥有动态类型
- 树莓派驱动LCD12864(st7920控制器)
- Problem B: 复制字符串
- char device driver
- Linux内核及分析 第四周 扒开系统调用的三层皮(上)