给定一个整数数组nums,将数组的元素向右轮转k个位置,其中k是非负数
时间: 2024-10-21 20:03:43 浏览: 29
python 实现给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)
5星 · 资源好评率100%
要实现这个功能,你可以使用数组或循环来实现数组元素的右移操作。这里有一个简单的C++方法,使用了数组的索引运算:
```cpp
#include <vector>
std::vector<int> rotateArray(std::vector<int>& nums, int k) {
int n = nums.size();
// 对k取模,确保k不会超出数组范围
k = k % n;
// 如果k为0,不需要旋转
if (k == 0) return nums;
std::vector<int> result(n);
// 将后k个元素复制到结果数组的前面
for (int i = 0; i < k; ++i) {
result[i] = nums[n - k];
}
// 将剩余元素复制到结果数组后面
for (int i = k; i < n; ++i) {
result[i] = nums[i];
}
// 更新原数组
nums = result;
return nums;
}
```
这段代码首先计算k对数组长度n取模的结果,确保k不会导致数组元素超过边界。然后创建一个新的临时数组`result`,将原数组的后k个元素移动到`result`的前部,其余元素依次移到末尾。最后,更新原数组`nums`为新的旋转后的数组。
阅读全文