10003. Counting Elements
Решение задачи 10003 “Counting Elements” с LeetCode.
Условие задачи
Given an integer array arr
, count element x
such that x + 1
is also in arr
.
If there’re duplicates in arr
, count them seperately.
Constraints:
1 <= arr.length <= 1000
0 <= arr[i] <= 1000
Данн массив целых чисел arr
. подсчитать количество таких элементов x
, для которых в массиве существуют элементы x+1
. Если такой элемент x
встречается несколько раз - считать каждый отельно.
ограничения
1 <= arr.length <= 1000
0 <= arr[i] <= 1000
пример
|
|
|
|
|
|
|
|
Решение
Использовать коллекцию
Идея алгоритма:
Создать коллекцию, где ключом будет число, а значение - кол-во раз вхождения числа в исходный массив.
Идем по исходному массиву и пересчитываем все числа.
Идем по коллекции, берем текущее число. Если в коллекции есть значения для текущего числа + 1 - то плюсуем к результату кол-во исходных чисел.
|
|
Сортировка с пересчетом
Идея алгоритма:
Отсортировать исходный массив
Идти по элементам, считать кол-во текущих элементов ( то есть сколько раз повторяется число ).
Как только встретили новое число
- если оно больше более чем на 1 - сбросить счетчики и считать заново
- если оно больше ровно на 1 - добавить к итоговому результату кол-во текущих элементов и обнулить их счетчик.
|
|