用Java实现:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
时间: 2024-05-13 15:20:51 浏览: 70
Java for combinatorial number algorithm.zip_4MJN_M?n_enterbl4_组合
以下是Java实现:
```java
import java.util.Arrays;
public class MoveArray {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
int m = 2;
moveArray(nums, m);
System.out.println(Arrays.toString(nums));
}
public static void moveArray(int[] nums, int m) {
int n = nums.length;
if (m > n) {
m %= n;
}
int[] temp = new int[m];
for (int i = n - m, j = 0; i < n; i++, j++) {
temp[j] = nums[i];
}
for (int i = n - 1, j = i - m; j >= 0; i--, j--) {
nums[i] = nums[j];
}
for (int i = 0; i < m; i++) {
nums[i] = temp[i];
}
}
}
```
首先判断移动的位数m是否大于数组长度n,如果是则取余数。
然后将后m个数保存到临时数组temp中。
接着从后往前遍历数组,将前n-m个数向后移动m个位置。
最后将临时数组中的m个数复制到数组的前面m个位置。
运行结果:
```
[4, 5, 1, 2, 3]
```
阅读全文