Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình đếm phần tử có phần tử kế tiếp cũng có trong mảng trong Python

Cho danh sách nums. Đếm số phần tử x trong mảng sao cho x+1 cũng có mặt trong mảng.

Ví dụ: nums = [4, 2, 3, 3, 7, 9] → kết quả 3. (2→3, 3→4, và 3 thứ hai→4).

Thuật toán giải quyết (O(n))

  1. Dùng Counter đếm tần suất
  2. Duyệt các khóa i trong counter:
    • Nếu counter[i+1] > 0: cộng thêm counter[i] vào kết quả
  3. Trả về kết quả

Ví dụ minh họa

from collections import Counter

def solve(nums):
    answer = 0
    c = Counter(nums)
    dlist = list(c.keys())
    for i in dlist:
        if c[i + 1] > 0:
            answer += c[i]
    return answer

nums = [4, 2, 3, 3, 7, 9]
print(solve(nums))

Đầu vào

[4, 2, 3, 3, 7, 9]

Đầu ra

3