把数组看成一页纸,按旋转量 i 划成两截 X 和 Y。目标是把 X+Y 变成 Y+X。 下面用「先各自翻,再整页翻」演示原理(另一种顺序「先整翻再各自翻」结果相同)。
i
X+Y
Y+X
原理口诀:每段被反转两次 → 段内顺序复原;整体反转一次 → 两段换边。 本地打开本文件即可交互:practice/demos/array-rotate-three-reverse.html
practice/demos/array-rotate-three-reverse.html