Я ищу создание в Java функции, которая будет принимать два массива или списка и сможет определить, подходит ли первый массив (источник) ко второму (цель). Целевой массив имеет значения, которые нельзя превысить в исходном массиве.
Например:
[ 16, 16, 16 ] will not fit into [ 13, 13, 22 ]
[ 12, 12 ] will fit into [ 16, 16, 12 ]
[ 12, 18, 14 ] will not fit into [ 10, 18, 14 ]
[ 12, 24 ] will fit into [ 10, 12, 24 ]
[ 10, 10, 10 ] will not fit into [ 10, 10 ]
Моя текущая попытка (IANA CS Major!) Подходит для трехэлементных массивов, и это все, что мне нужно беспокоиться в краткосрочной перспективе, но мне не хватает некоторой логики во внутреннем цикле, которая предотвратит ложные отрицания.
Суть: https://gist.github.com/1208514
private Boolean designFits(int[] max, int[] design) {
Boolean designFits = true;
Arrays.sort(max);
Arrays.sort(design);
int passCount = 0;
if(design.length <= max.length) {
for(int i = 0; i < max.length; i++) {
for(int j = 0; j < design.length; j++) {
if(max[i] <= design[j]) {
passCount++;
}
}
}
if(passCount == 0 || passCount > max.length) {
designFits = false;
}
} else {
designFits = false;
}
return designFits;
}