Я пытаюсь подсчитать количество инверсий в массиве. Я получаю результат 3, когда это должно быть 4. Вот мой код.Почему я не получаю правильный выход?
int[] array1 = new int[5];
array1[0] = 3;
array1[1] = 7;
array1[2] = 10;
array1[3] = 6;
array1[4] = 4;
int count = 0;
for(int i =0;i<array1.length;i++){
for(int j =i+1;j<array1.length;j++){
if(array1[i]> array1[j]){
count++;
}
}
}
System.out.println(count);
Кто-нибудь знает, почему это делается? благодаря
ArrayIndexOutOfBoundException здесь. Вы увеличиваете 'i' до array1.length. Он должен быть «<» не «<=» –
почему i ++ j ++ внутри цикла. проверьте логику приращения цикла. – bakki
спасибо за подсказку, я изменил его, но я все равно получаю 3 – lc112