一维数组向左循环移动m个位置
时间: 2023-10-02 10:04:26 浏览: 104
数组循环左移K位
5星 · 资源好评率100%
一维数组向左循环移动m个位置的方法可以通过三次翻转实现,具体步骤如下:
1. 将数组的前m个元素翻转。
2. 将数组的后n-m个元素翻转。
3. 将整个数组翻转。
其中,n为数组的长度。
下面是一个示例代码实现:
```python
def rotate_array(arr, m):
n = len(arr)
m %= n
reverse(arr, 0, m-1)
reverse(arr, m, n-1)
reverse(arr, 0, n-1)
def reverse(arr, left, right):
while left < right:
arr[left], arr[right] = arr[right], arr[left]
left += 1
right -= 1
```
这段代码中,rotate_array函数接受两个参数,一个是数组arr,另一个是移动的位置m。首先对m进行取模操作,以防m大于数组长度。然后依次调用reverse函数进行翻转操作,最终得到向左循环移动m个位置后的数组。
阅读全文