数组元素循环右移问题
时间: 2023-12-26 15:26:26 浏览: 117
数据结构之数组循环右移
以下是两种实现数组元素循环右移的方法:
1. 通过对数组进行三次逆置来达到循环的效果,具体实现可以参考下面的代码:
```python
def reverse(nums, start, end):
while start < end:
nums[start], nums[end] = nums[end], nums[start]
start += 1
end -= 1
def rotate(nums, k):
n = len(nums)
k %= n
reverse(nums, 0, n - 1)
reverse(nums, 0, k - 1)
reverse(nums, k, n - 1)
nums = [1, 2, 3, 4, 5]
k = 2
rotate(nums, k)
print(nums) # 输出:[4, 5, 1, 2, 3]
```
2. 通过取余数的方法来实现循环右移,具体实现可以参考下面的代码:
```python
def rotate(nums, k):
n = len(nums)
k %= n
for i in range(n):
print(nums[(n - k + i) % n], end=' ')
nums = [1, 2, 3, 4, 5]
k = 2
rotate(nums, k) # 输出:4 5 1 2 3
```
阅读全文