""" 轮转数组 给定一个整数数组numbers, 将数组中的元素向右轮转x个位置, 其中,x是非负数。 """ def reverse(numbers, start, end): """ 反转数组中指定范围的元素。 参数: numbers -- 要操作的数组 start -- 反转的起始索引 end -- 反转的结束索引 """ while start < end: # 交换数组中指定范围的元素 numbers[start], numbers[end] = numbers[end], numbers[start] start += 1 end -= 1 def rotate(numbers, x): """ 将数组向右旋转x个位置。 参数: numbers -- 要操作的数组 x -- 旋转的位置数 """ length = len(numbers) # 处理x大于数组长度的情况,确保x为有效的旋转位置数 x %= length # 反转整个数组,为后续旋转做准备 reverse(numbers, 0, length - 1) # 反转数组的前x个元素 reverse(numbers, 0, x - 1) # 反转数组的剩余部分,完成旋转 reverse(numbers, x, length - 1) # 测试代码 numbers = [1, 2, 3, 4, 5, 6, 7] rotate(numbers, 5) print(numbers)
评论前必须登录!
注册