将n元一维向量向左旋转i个位置,写java代码
时间: 2024-09-18 16:16:12 浏览: 31
C++实现一维向量旋转算法
在Java中,你可以使用数组或ArrayList来表示一维向量,并利用数学旋转原理实现向左旋转。这里我们先假设`n`是一个固定大小,然后创建一个临时数组存储旋转后的结果。以下是使用数组的示例:
```java
public class VectorRotation {
public static int[] leftRotate(int[] nums, int i) {
// 检查旋转位数是否大于数组长度
if (i >= nums.length || i < 0) {
throw new IllegalArgumentException("Invalid rotation index");
}
// 获取实际需要循环的次数
i = i % nums.length;
// 创建一个新的数组来存放旋转后的结果
int[] result = new int[nums.length];
for (int j = 0; j < nums.length; j++) {
// 使用模运算将索引绕回原点
result[(j + i) % nums.length] = nums[j];
}
return result;
}
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
int i = 2; // 需要旋转的位置
int[] rotated = leftRotate(nums, i);
System.out.println(Arrays.toString(rotated)); // 输出:[4, 5, 1, 2, 3]
阅读全文