剑指offer--顺时针打印矩阵
来源:互联网 发布:vmware fusion 知乎 编辑:程序博客网 时间:2024/05/29 02:37
面试题20:顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入以下矩阵:
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.
#define ROW 4#define COL 4//一次打印一圈void PrintMatrixInCirclie(int **arr,int row,int col,int start){ int endX = col-1-start; int endY = row-1-start; //从左往右打印 for(int i=start;i<=endX;++i) { cout<<arr[start][i]<<" "; } if(start < endY) { //从上往下打印 for(int i=start+1;i<=endY;++i) { cout<<arr[i][endX]<<" "; } } if(start<endX && start<endY) { //从右往左打印 for(int i=endX-1;i>=start;--i) { cout<<arr[endY][i]<<" "; } } if(start<endX && start<endY-1) { //从下往上打印 for(int i=endY-1;i>=start+1;--i) { cout<<arr[i][start]<<" "; } }}//从外向内顺时针打印矩阵void PrintMatrixClockwisely(int **arr,int rows,int cols){ if(arr==NULL || rows<=0 || cols<=0) return; int start = 0; while(rows>start*2 && cols>=start*2) { PrintMatrixInCirclie(arr,rows,cols,start); ++start; }}//从内向外顺时针打印矩阵void PrintMatrix(int **arr,int rows,int cols){ if(arr==NULL || rows<=0 || cols<=0) return; int start = ROW/2; while(start>=0 && cols>=0) { PrintMatrixInCirclie(arr,rows,cols,start); --start; }}int main(){ int count = 1; int **arr = new int *[ROW]; for(int i=0;i<ROW;i++) { arr[i] = new int[COL]; for(int j=0;j<COL;j++) { arr[i][j] = count++; } } cout<<"从外向内顺时针打印矩阵:"<<endl; PrintMatrixClockwisely(arr,ROW,COL); cout<<endl; cout<<"从内向外顺时针打印矩阵:"<<endl; PrintMatrix(arr,ROW,COL);}
阅读全文
0 0
- 【剑指offer】顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 《剑指offer》顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- [剑指offer]顺时针打印矩阵
- 《剑指offer》-顺时针打印矩阵
- 【剑指offer】顺时针打印矩阵
- 剑指offer|顺时针打印矩阵
- 《剑指offer》顺时针打印矩阵
- 剑指Offer:顺时针打印矩阵
- linux查找所有文件中某个字符串
- Textpad 1.7下载
- 数据科学和 ML 领域常用的 Python 库
- 7.vi编辑器的使用
- 其实我也不喜欢戴套
- 剑指offer--顺时针打印矩阵
- excel设置坐标轴起始值
- mysql binlog介绍
- SDUT 2143 图结构练习——最短路径(Dijkstra 单源最短路径求解)
- C# suspend sleep join 区别
- HDU5952 Counting Cliques (dfs)
- Ubuntu Anaconda 安装tensorflow
- 我的学习记录4
- 1-3移动均线交叉策略2