原地旋转矩阵 180 度

Google Translate Icon

给定一个方阵,将矩阵顺时针旋转 180 度。应该进行改造 到位 在二次时间。

例如,

Input:
 
1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16
 
Output:
 
16  15  14  13
12  11  10  9
8   7   6   5
4   3   2   1

练习这个问题

如果我们以相反的顺序将第一行的元素与最后一行的元素交换,将第二行的元素与倒序的倒数第二行的元素交换,依此类推……我们将得到所需的矩阵。请注意,如果矩阵具有奇数维度,则反转中间行的元素。

该算法可以在 C++、Java 和 Python 中实现如下:

C++


下载  运行代码

输出:

16  15  14  13
12  11  10  9
8   7   6   5
4   3   2   1

Java


下载  运行代码

输出:

[16, 15, 14, 13]
[12, 11, 10, 9]
[8, 7, 6, 5]
[4, 3, 2, 1]

Python


下载  运行代码

输出:

[16, 15, 14, 13]
[12, 11, 10, 9]
[8, 7, 6, 5]
[4, 3, 2, 1]

所提出解决方案的时间复杂度为 O(N2)N × N 矩阵并且不需要任何额外的空间。

 
相关文章:

就地将矩阵顺时针旋转 90 度

评价这篇文章

平均评分 4.85/5。票数: 114

暂时没有票!成为第一个给这篇文章评分的人。

很抱歉这篇文章对您没有用处!

告诉我们如何改进这篇文章?




谢谢阅读。

请使用我们的 在线编译器 使用 C、C++、Java、Python、JavaScript、C#、PHP 和许多更流行的编程语言在评论中发布代码。

像我们?将我们推荐给您的朋友,帮助我们成长。快乐编码 :)



订阅
通知
guest
3 注释
投票最多
最新 最老的
内联反馈
查看所有评论
请勿点击此链接,否则您将被禁止访问该网站!