Java编程题目 | 整数数组循环移动

90 阅读2分钟

大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~      

题目描述

有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

解题思路

  1. 创建一个新数组,长度与原数组相同。
  2. 将原数组中从第n-m个元素开始的m个元素复制到新数组的前m个位置。
  3. 将原数组中从第1个元素开始的n-m个元素复制到新数组的第m+1个位置开始。
  4. 输出新数组。

源码答案

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)