c语言给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
时间: 2024-09-27 22:18:00 浏览: 42
python 实现给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)
5星 · 资源好评率100%
在C语言中,你可以使用数组的指针操作和临时变量来实现这个功能,这种方法通常被称为“数组左移”或者“rotate array”。以下是一个简单的示例函数,它接受一个整数数组`nums`和一个旋转步长`k`作为输入,并原地修改数组:
```c
void rotate(int nums[], int n, int k) {
// 检查旋转步长的有效性,如果k大于n则k取模n
k = k % n;
// 使用两个指针,一个从头开始,一个指向k的位置
int start = 0;
int end = k;
while (start < end) {
// 将元素从start移到end
swap(nums[start], nums[end]);
// 向右移动指针
start++;
end++;
}
}
// 交换两个元素的函数
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
当你调用`rotate(nums, n, k)`时,数组`nums`的内容就会按照顺时针方向旋转了`k`位。
阅读全文