题解中的b和c还是使用了新的数组。

可以写一个新办法一个一个换。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 旋转数组
# @param n int整型 数组长度
# @param m int整型 右移距离
# @param a int整型一维数组 给定数组
# @return int整型一维数组
#
class Solution:
    def solve(self, n: int, m: int, a: List[int]) -> List[int]:
        # 取模操作,确保 m 在数组长度范围内
        m = m % n

        def reverse(arr, start, end):
            while start < end:
                arr[start], arr[end] = arr[end], arr[start]
                start += 1
                end -= 1

        # 反转整个数组
        reverse(a, 0, n - 1)
        # 反转前 m 个元素
        reverse(a, 0, m - 1)
        # 反转剩余的 n - m 个元素
        reverse(a, m, n - 1)

        return a