您的位置:首页 > 编程语言 > Go语言

001-algorithm-print matrix on the clockwise

2016-09-03 21:05 363 查看
1 2 3

4 5 6   ---> 1 2 3 6 9 8 7 4 5

7 8 9   

void print_matrix(int a[], int m, int n)
{
//matrix a with size m n
std::vector<int> x;
int point1 = 0;
int point2 = n - 1;
int point3 = m*n - 1;
int point4 = m*n - n;
while (point1<=point2 && point2<=point3 && point3>=point4 && point4>=point1)
{
for (int i = point1; i < point2; i++){
x.push_back(a[i]);
}
for (int i = point2; i < point3; i += n){
x.push_back(a[i]);
}
for (int i = point3; i > point4; i--){
x.push_back(a[i]);
}
for (int i = point4; i > point1; i -= n){
x.push_back(a[i]);
}
if (point1 == point2 && point3 == point4 && point1==point3){
x.push_back(a[point1]);
}
point1 += (n + 1);
point2 += (n - 1);
point3 -= (n + 1);
point4 -= (n - 1);
}//while
for (auto i : x){
std::cout << i << " ";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: