Подсчет элементов в целочисленном массиве с определенным свойством

Вот несколько методов подсчета количества элементов в целочисленном массиве arr, в котором x + 1также присутствует в arr. Я приведу примеры кода для каждого метода:

Метод 1: использование набора

def count_elements(arr):
    num_set = set(arr)
    count = 0
    for num in arr:
        if num + 1 in num_set:
            count += 1
    return count

Метод 2. Использование словаря

def count_elements(arr):
    num_dict = {}
    count = 0
    for num in arr:
        num_dict[num] = num_dict.get(num, 0) + 1
    for num in arr:
        if num + 1 in num_dict:
            count += 1
    return count

Метод 3. Использование сортировки

def count_elements(arr):
    arr.sort()
    count = 0
    i = 0
    while i < len(arr):
        curr_count = 1
        while i + 1 < len(arr) and arr[i] == arr[i + 1]:
            curr_count += 1
            i += 1
        if arr[i] + 1 in arr:
            count += curr_count
        i += 1
    return count

Метод 4. Использование списков

def count_elements(arr):
    return sum(1 for num in arr if num + 1 in arr)

Это лишь несколько возможных способов решения проблемы. Каждый метод имеет свои преимущества и может оказаться более подходящим в зависимости от конкретных требований вашего приложения.