Java:将整数数组分为具有随机值的子数组吗?

时间:2019-11-18 03:40:25

标签: java arrays list

我想将一个数组分为随机大小的3个子数组。

例如,输入数组为I = [20, 5, 1, 2, 5, 10, 2, 5]

子数组可能像:

A = [20, 5]

B = [2, 5, 10]

C = [1, 2, 5]

1 个答案:

答案 0 :(得分:0)

通过您提供的示例,看起来子数组可以重叠,因此生成的子数组的数量无关紧要。您只希望在随机的起始和结束位置之间复制数组。

int[] getRandomSubArray(int[] array) {
    Random random = new Random();
    int start = random.nextInt(array.length);
    int end = start + random.nextInt(array.length - start);
    return Arrays.copyOfRandom(array, start, end);
}

然后您可以生成任意数量的

int[] a = getRandomSubArray(array);
int[] b = getRandomSubArray(array);
int[] c = getRandomSubArray(array);