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))
- Dùng
Counterđếm tần suất - Duyệt các khóa
itrong counter:- Nếu
counter[i+1] > 0: cộng thêmcounter[i]vào kết quả
- Nếu
- 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