算法题目---顺时针打印矩阵
来源:互联网 发布:16年双十一淘宝交易额 编辑:程序博客网 时间:2024/06/06 05:05
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每个数字。
oid printNumber(int num)
{
printf("%d\t",num);
}
void PrintMatrixInCircle(int **numbers,int cols,int rows,int start)
{
int endX = cols - 1 - start;
int endY = rows - 1 - start;
for(int i = start;i<= endX;++i)
{
int num = numbers[start][i];
printNumber(num);
}
if(start < endY)
{
for(int i = start+1;i <= endY;++i )
{
int num = numbers[i][endX];
printNumber(num);
}
}
if(start < endY && start < endY)
{
for(int i=endX-1;i>= start; --i)
{
int num = numbers[endY][i];
printNumber(num);
}
}
if(start < endX && start < endY -1)
{
for(int i = endY -1;i >= start+1;--i)
{
int num = numbers[i][start];
printNumber(num);
}
}
}
void PrintMatrixClockwise(int **number,int cols,int rows)
{
if(number == NULL || cols <= 0 || rows <= 0)
return;
int start = 0;
while(cols > start*2 && rows > start*2)
{
PrintMatrixInCircle(number,cols,rows,start);
start++;
}
}
void Test(int cols,int rows)
{
printf("Test Begin: %d cols, %d rows.\n", cols, rows);
if(cols < 1 || rows < 1)
return ;
int **numbers = new int*[rows];
for(int i=0;i<rows;++i)
{
numbers[i] = new int [cols];
for(int j=0;j<cols;++j)
{
numbers[i][j] = i*cols + j +1;
}
}
PrintMatrixClockwise(numbers,cols,rows);
printf("\n");
for(int i=0;i<rows;++i)
delete[] (int*)numbers[i];
delete[] numbers;
}
int main()
{
Test(1,1);
Test(2,2);
Test(4,4);
Test(5,5);
Test(1,5);
Test(2,5);
Test(3,5);
Test(4,5);
Test(5,1);
Test(5,2);
Test(5,3);
Test(5,4);
return 0;
}
- 算法题目--顺时针打印矩阵
- 算法题目---顺时针打印矩阵
- 顺时针打印矩阵[算法]
- 题目8:顺时针打印矩阵
- 题目1391:顺时针打印矩阵
- 笔试题目:顺时针打印矩阵
- 题目1391:顺时针打印矩阵
- 题目1391:顺时针打印矩阵
- 题目1391:顺时针打印矩阵
- [算法学习]顺时针打印矩阵
- 算法题/顺时针打印矩阵
- 题目1391:顺时针打印矩阵-九度
- 九度 题目1391:顺时针打印矩阵
- 面试算法(十九)顺时针打印矩阵
- 经典算法——顺时针打印矩阵
- 每天一个算法之顺时针打印矩阵
- [经典算法]优雅实现顺时针打印矩阵
- 顺时针打印矩阵 -- 漫漫算法路 刷题篇
- angularjs-兼容各种浏览器的复制到剪切板功能的代码
- Tp5命名空间及路由笔记
- C#中Action、Func、Tuple的使用
- 张五常的学习方法为什么好?因为符合人类的认知原理
- etcd使用简介
- 算法题目---顺时针打印矩阵
- Android & iOS 开发全面对比分析
- 1293 球与切换器(dp)
- Kotlin-Kotlin中调用Java
- VMware中安装Centos
- Codeforces Round #423 (Div. 2) B. Black Square(思路)
- 4-1 简单输出整数 (10分)
- 盘点PDF文件转Word文档的四种高效率转换方法
- Maven3路程(五)用Maven创建Hibernate项目