我想将一个数组分为随机大小的3个子数组。
例如,输入数组为I = [20, 5, 1, 2, 5, 10, 2, 5]
子数组可能像:
A = [20, 5]
B = [2, 5, 10]
C = [1, 2, 5]
答案 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);