题目链接:1.回形取数 - 蓝桥云课 (lanqiao.cn)
解题思路:跟蛇形矩阵思路一样,也是定义上下左右四个边界,可以看看我的往期博客螺旋矩阵-蓝桥-CSDN博客,一样的思路。
c++代码:
#include <iostream>
using namespace std;
int arr[210][210];
int main()
{
// 请在此输入您的代码
int m, n;
cin >> m >> n;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
}
}
int on = 0, under = m - 1, left = 0, right = n - 1, sum = m * n;
while (sum != 0) {
for (int i = on; i <= under; i++) {
cout << arr[i][left] << " ";
sum--;
}
left++;
for (int i = left; i <= right; i++) {
cout << arr[under][i] << " ";
sum--;
}
under--;
for (int i = under; i >= on; i--) {
cout << arr[i][right] << " ";
sum--;
}
right--;
for (int i = right; i >= left; i--) {
cout << arr[on][i] << " ";
sum--;
}
on++;
}
return 0;
}