大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~
题目描述
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
解题思路
- 创建一个新数组,长度与原数组相同。
- 将原数组中从第n-m个元素开始的m个元素复制到新数组的前m个位置。
- 将原数组中从第1个元素开始的n-m个元素复制到新数组的第m+1个位置开始。
- 输出新数组。
源码答案
import java.util.Arrays;
public class ArrayRotation {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 示例数组
int m = 3; // 移动位置数
int n = arr.length;
int[] newArr = new int[n];
// 将最后m个数移到新数组的前m个位置
System.arraycopy(arr, n - m, newArr, 0, m);
// 将前n-m个数移到新数组的第m个位置开始
System.arraycopy(arr, 0, newArr, m, n - m);
// 输出新数组
System.out.println("移动后的数组:" + Arrays.toString(newArr));
}
}
输出结果
程序将输出根据题目要求移动后的数组。
例如,如果输入数组为{1, 2, 3, 4, 5, 6, 7, 8, 9},移动位置数为3,输出结果将是:
移动后的数组:[7, 8, 9, 1, 2, 3, 4, 5, 6]
AI时代的游轮已经到来
如果你觉得开发过程中存在重复性工作,效率不够高。
不妨看看影子的AI+编程玩法,助力每一位编程人员提高效率,无论你是在校学生或是工作者,都应为未来的AIG时代做准备。
赚到啦!满满的AI+编程学习资源,AI与编程资料分享! - 掘金 (juejin.cn)