Две пары: если есть две пары костей с одинаковым числом, игрок набирает сумму этих кубиков. Если нет, игрок оценивает 0. Например, 1, 1, 2, 3, 3, помещенные на «две пары», дают 8.нахождение двух пар из целочисленного массива из двух элементов
примеры: 1,1,2,3,3 результаты 8 1, 1,2,3,4 Результаты 0 1,1,2,2,2 результаты 6
Как это можно найти эффективно?
Я использую следующий код, чтобы найти единственную пару
int max_difference = 0;
int val1 = 0 , val2 = 0;
Arrays.sort(dice);
for (int i = 0; i < dice.length - 1; i++) {
int x = dice[i+1] - dice[i];
if(x <= max_difference) {
max_difference = x;
val1 = dice[i];
val2 = dice[i+1];
}
}
pairScore = val1 + val2;
«две пары» = 2 x 2 кости с одинаковым значением? Итак, если у меня есть 1, 1, 2, 3, 4, результат равен 0? Что насчет 1, 1, 1, 2, 2? И 1, 1, 1, 1, 2? – Mark
@Mark это должно привести к сумме обоих средств 6 (1 + 1 + 2 + 2) –
В этом случае должно быть 6? 1, 1, 1, 2, 2? Значит, не имеет значения, что есть 3 1s, которые все еще считаются парой? – Mark