7-1 数组循环左移 (20 分)
时间: 2023-11-27 10:06:01 浏览: 129
数组循环左移
这个问题是一个编程题目,要求实现一个将数组循环左移k位的函数。
具体实现方法可以是:先将前k个数字翻转,再将后面的数字翻转,最后将整个数组翻转。
以下是一个C++的实现示例:
```cpp
void reverse(int nums[], int start, int end) {
while (start < end) {
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
}
void rotate(int nums[], int n, int k) {
k = k % n;
reverse(nums, 0, k - 1);
reverse(nums, k, n - 1);
reverse(nums, 0, n - 1);
}
```
其中,reverse函数用于翻转数组中的一段区间,rotate函数用于实现数组循环左移。
阅读全文