请问有没有关于将一个2维数组旋转90度的算法?

Brunhild 2003-12-12 10:23:35
例如一个2维数组:
1,2,3
4,5,6
顺时针旋转90度后成为:
4,1
5,2
6,3
逆时针旋转后变成:
3,6
2,5
1,4
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengsf 2003-12-14
  • 打赏
  • 举报
回复
写错一些。
a[i][m-1-j] 改为 a[m-1-j][i].

虽然已经结帖,但还是希望楼主能看到。
Brunhild 2003-12-12
  • 打赏
  • 举报
回复
矩阵的东西早就忘清光了,能不能给段代码或提示啊
lygfqy 2003-12-12
  • 打赏
  • 举报
回复
用线性代数中的矩阵转换即可
dengsf 2003-12-12
  • 打赏
  • 举报
回复
按错了,继续。下面是C伪码而已,编译肯定不过,只是说明问题而已。

//a 是原数组, m 是行数, n 是列数。
//顺时针转换 a[][],返回 b[][].
int[][] clockwise( int[][] a ,int m, int n )
{
int[][] b = new int(m*n);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
b[i][j] = a[i][m-1-j];
}
}
return b;
}
dengsf 2003-12-12
  • 打赏
  • 举报
回复
比较简单吧,应该不必用到矩阵,稍微观察一下就可以编码了。

设原矩阵为 A[M,N],则生成结果为 B[M,N],
我写写我时针的思路,逆时针类似。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧