gpt4 book ai didi

algorithm - 如何旋转二维数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:06 24 4
gpt4 key购买 nike

灵感来自 Raymond Chen's post ,假设您有一个 4x4 二维数组,编写一个将其旋转 90 度的函数。 Raymond 链接到伪代码中的解决方案,但我希望看到一些真实世界的东西。

[1][2][3][4]
[5][6][7][8]
[9][0][1][2]
[3][4][5][6]

变成:

[3][9][5][1]
[4][0][6][2]
[5][1][7][3]
[6][2][8][4]

更新:Nick 的回答是最直接的,但是有没有比 n^2 更好的方法呢?如果矩阵是 10000x10000 会怎么样?

最佳答案

O(n^2) 时间和 O(1) 空间算法(没有任何变通方法和花招!)

旋转 +90:

  1. 转置
  2. 反转每一行

旋转-90:

方法一:

  1. 转置
  2. 反转每一列

方法二:

  1. 反转每一行
  2. 转置

旋转 +180:

方法一:两次旋转+90

方法二:先反转每一行再反转每一列(Transpose)

旋转-180:

方法一:旋转-90度两次

方法二:先反转每一列再反转每一行

方法三:相同时旋转+180

关于algorithm - 如何旋转二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com