Мне нужно подсчитать, сколько раз целое число встречается в отсортированном массиве.
Ожидаемый ввод:
int[] arr = {10, 10, 10, 20, 20, 40, 40, 45, 45}
Ожидаемый результат:
10 - 3
20 - 2
40 - 2
45 - 2
Итак , Я использовал для l oop, который начинается с первого (i) индекса, и сравнивая его с элементом ((i-1), который равен 0, индекс), если он равен, то увеличивайте значение счетчика, если оно не равно, затем выводите ответ и установите значение счетчика на 1.
Но это решение не дает мне вывода элемента arr [arr.length - 1]. Почему?
Мой результат:
10 - 3
20 - 2
40 - 2
Мое решение -
public static void main(String[] args) {
//Frequencies in a sorted array
int[] arr = {10, 10, 10, 20, 20, 40, 40, 45, 45};
get_Frequencies(arr);
}
public static void get_Frequencies(int[] arr) {
int counter = 1;
for(int i = 1; i < arr.length; i++) {
if (arr[i] == arr[i - 1]) {
counter++;
}
if (arr[i] != arr[i - 1]) {
System.out.println(arr[i - 1] + " - " + counter);
counter = 1;
}
}
}