public class LoopTest {
public static void main(String[] args) {
int[] myarr = {12, 12, 12, 8, 15, 15};
//Boolean array to mark the elements,defaults false
boolean[] b = new boolean[myarr.length];
//Compare Consecutive values and mark them true if equal
for (int i = 1; i < myarr.length; i++) {
if (myarr[i - 1] == myarr[i]) {
b[i - 1] = b[i] = true;
}
}
int sum = 0;
//Add all the values in myarr with indices marked as equal
for (int i = 0; i < b.length; i++) {
if (b[i]) {
sum += myarr[i];
}
}
System.out.println(sum);
}
}
Выход:Сравнение последовательных элементов в массиве и суммировать те же значения
Пояснение:
12 + 12 + 12 + 15 + 15
Есть ли лучший/более чистый способ сравнить значения в массиве и добавить только значения, если они равны, без использования методов утилиты?
не имеющий предыдущее значение более удобный/чистый подход? – kosa
@Nambari Не могли бы вы предоставить ответ? Я хотел бы видеть подход! – EvenPrime
@Thinkingcap будет идентичными значениями в случайном положении. '[1,2,3,1,2,3,4]'? или всегда как [1,1,1,2,2,3,3,4] –